Jadual Kandungan
hadoop pig udf scheme
Rumah pangkalan data tutorial mysql Hadoop Pig Udf Scheme

Hadoop Pig Udf Scheme

Jun 07, 2016 pm 04:30 PM
hadoop p pig

hadoop pig udf scheme 如果不指定 scheme 当你返回一个tuple里面有大于1个fields的时候, 就必须指定schemea 不然多个field就当作一个field register myudfs.jar; A = load 'student_data' as (name: chararray, age: int, gpa: float); B = foreach A gene

hadoop pig udf scheme

如果不指定 scheme 当你返回一个tuple里面有大于1个fields的时候,

就必须指定schemea 不然多个field就当作一个field

<code>    register myudfs.jar;
    A = load 'student_data' as (name: chararray, age: int, gpa: float);
    B = foreach A generate flatten(myudfs.Swap(name, age)), gpa;
    C = foreach B generate $2;
    D = limit B 20;
    dump D
</code>
Salin selepas log masuk

This script will result in the following error cause by line 4 ( C = foreach B generate $2;).

<code>java.io.IOException: Out of bound access. Trying to access non-existent column: 2. Schema {bytearray,gpa: float} has 2 column(s).
</code>
Salin selepas log masuk

This is because Pig is only aware of two columns in B while line 4 is requesting the third column of the tuple. (Column indexing in Pig starts with 0.) The function, including the schema, looks like this:

下面实现了一个schema,输出为4个参数,输出为两个参数,在android上面要用imei和mac去生成一个ukey,在ios平台上,要用 mac和openudid去生成一个ukey

最后返回的是一个platform,ukey

<code>    package kload;
    import java.io.IOException;
    import org.apache.pig.EvalFunc;
    import org.apache.pig.data.Tuple;
    import org.apache.pig.data.TupleFactory;
    import org.apache.pig.impl.logicalLayer.schema.Schema;
    import org.apache.pig.data.DataType;
     /**
      *translate mac,imei,openudid to key
      */
     public class KoudaiFormateUkey extends EvalFunc<tuple>{
         private String ukey = null;
         private String platform = null;
         public Tuple exec(Tuple input) throws IOException {
             if (input == null || input.size() == 0)
                 return null;
             try{
                 String platform = (String)input.get(0);
                 String mac = (String)input.get(1);
                 String imei= (String)input.get(2);
                 String openudID = (String)input.get(3);
                 this.getUkey(platform,mac,imei,openudID);
                 if(this.platform == null || this.ukey == null){
                     return null;
                 }
                 Tuple output = TupleFactory.getInstance().newTuple(2);
                 output.set(0, this.platform);
                 output.set(1, this.ukey);
                 return output;
             }catch(Exception e){
                 throw new IOException("Caught exception processing input row ", e);
             }
         }
         private String getUkey(String platform, String mac, String imei, String openudID){
             String tmpStr = null;
             String ukey = null;
             int pType=-1;
             if(platform == null){
                 return null;
             }
             tmpStr = platform.toUpperCase();
             if(tmpStr.indexOf("IPHONE") != -1){
                 this.platform = "iphone";
                 pType = 1001; 
             }else if(tmpStr.indexOf("ANDROID") != -1){
                 this.platform = "android";
                 pType = 1002; 
             }else if(tmpStr.indexOf("IPAD") != -1){
                 this.platform = "ipad";
                 pType = 1003; 
             }else{
                 this.platform = "unknow";
                 pType = 1004; 
             }
             switch(pType){
                 case 1001:
                     case 1003:
                     if(mac == null && openudID == null){
                         return null;
                     }
                 ukey = String.format("%s_%s",mac,openudID);
                 break;
                 case 1002:
                     if(mac == null && imei== null){
                         return null;
                     }
                 ukey = String.format("%s_%s",mac,imei);
                 break;
                 case 1004:
                     if(mac == null && imei== null && openudID == null){
                         return null;
                     }
                 ukey = String.format("%s_%s_%s",mac,imei,openudID);
                 break;
                 default:
                 break;
             }
             if  (ukey == null || ukey.length() == 0){
                 return null;
             }
             this.ukey = ukey.toUpperCase();
             return this.ukey;
         }
         public Schema outputSchema(Schema input) {
             try{
                 Schema tupleSchema = new Schema();
                 tupleSchema.add(input.getField(0));
                 tupleSchema.add(input.getField(1));
                 return new Schema(new
                         Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(),
                                 input),tupleSchema, DataType.TUPLE));
             }catch (Exception e){
                 return null;
             }
         }
    }
</tuple></code>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ralat Java: Ralat Hadoop, Cara Mengendalikan dan Mengelak Ralat Java: Ralat Hadoop, Cara Mengendalikan dan Mengelak Jun 24, 2023 pm 01:06 PM

Ralat Java: Ralat Hadoop, Cara Mengendalikan dan Mengelak Apabila menggunakan Hadoop untuk memproses data besar, anda sering menghadapi beberapa ralat pengecualian Java, yang mungkin menjejaskan pelaksanaan tugas dan menyebabkan pemprosesan data gagal. Artikel ini akan memperkenalkan beberapa ralat Hadoop biasa dan menyediakan cara untuk menangani dan mengelakkannya. Java.lang.OutOfMemoryErrorOutOfMemoryError ialah ralat yang disebabkan oleh memori mesin maya Java yang tidak mencukupi. Apabila Hadoop adalah

Menggunakan Hadoop dan HBase dalam Beego untuk penyimpanan data besar dan pertanyaan Menggunakan Hadoop dan HBase dalam Beego untuk penyimpanan data besar dan pertanyaan Jun 22, 2023 am 10:21 AM

Dengan kemunculan era data besar, pemprosesan dan penyimpanan data menjadi semakin penting, dan cara mengurus dan menganalisis sejumlah besar data dengan cekap telah menjadi cabaran bagi perusahaan. Hadoop dan HBase, dua projek Yayasan Apache, menyediakan penyelesaian untuk penyimpanan dan analisis data besar. Artikel ini akan memperkenalkan cara menggunakan Hadoop dan HBase dalam Beego untuk storan dan pertanyaan data besar. 1. Pengenalan kepada Hadoop dan HBase Hadoop ialah sistem storan dan pengkomputeran teragih sumber terbuka yang boleh

Cara menggunakan PHP dan Hadoop untuk pemprosesan data besar Cara menggunakan PHP dan Hadoop untuk pemprosesan data besar Jun 19, 2023 pm 02:24 PM

Memandangkan jumlah data terus meningkat, kaedah pemprosesan data tradisional tidak lagi dapat menangani cabaran yang dibawa oleh era data besar. Hadoop ialah rangka kerja pengkomputeran teragih sumber terbuka yang menyelesaikan masalah kesesakan prestasi yang disebabkan oleh pelayan nod tunggal dalam pemprosesan data besar melalui storan teragih dan pemprosesan sejumlah besar data. PHP adalah bahasa skrip yang digunakan secara meluas dalam pembangunan web dan mempunyai kelebihan pembangunan pesat dan penyelenggaraan yang mudah. Artikel ini akan memperkenalkan cara menggunakan PHP dan Hadoop untuk pemprosesan data besar. Apa itu HadoopHadoop

Terokai aplikasi Java dalam bidang data besar: pemahaman tentang Hadoop, Spark, Kafka dan tindanan teknologi lain Terokai aplikasi Java dalam bidang data besar: pemahaman tentang Hadoop, Spark, Kafka dan tindanan teknologi lain Dec 26, 2023 pm 02:57 PM

Timbunan teknologi data besar Java: Fahami aplikasi Java dalam bidang data besar, seperti Hadoop, Spark, Kafka, dll. Apabila jumlah data terus meningkat, teknologi data besar telah menjadi topik hangat dalam era Internet hari ini. Dalam bidang data besar, kita sering mendengar nama Hadoop, Spark, Kafka dan teknologi lain. Teknologi ini memainkan peranan penting, dan Java, sebagai bahasa pengaturcaraan yang digunakan secara meluas, juga memainkan peranan yang besar dalam bidang data besar. Artikel ini akan memberi tumpuan kepada aplikasi Java secara besar-besaran

Bagaimana untuk memasang Hadoop dalam linux Bagaimana untuk memasang Hadoop dalam linux May 18, 2023 pm 08:19 PM

1: Pasang JDK1. Jalankan arahan berikut untuk memuat turun pakej pemasangan JDK1.8. wget--no-check-certificatehttps://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz2 Jalankan arahan berikut untuk menyahmampat pakej pemasangan JDK1.8 yang dimuat turun . tar-zxvfjdk-8u151-linux-x64.tar.gz3 Alihkan dan namakan semula pakej JDK. mvjdk1.8.0_151//usr/java84. gema'

Gunakan PHP untuk mencapai pemprosesan data berskala besar: Hadoop, Spark, Flink, dsb. Gunakan PHP untuk mencapai pemprosesan data berskala besar: Hadoop, Spark, Flink, dsb. May 11, 2023 pm 04:13 PM

Memandangkan jumlah data terus meningkat, pemprosesan data berskala besar telah menjadi masalah yang mesti dihadapi dan diselesaikan oleh perusahaan. Pangkalan data perhubungan tradisional tidak lagi dapat memenuhi permintaan ini Untuk penyimpanan dan analisis data berskala besar, platform pengkomputeran teragih seperti Hadoop, Spark, dan Flink telah menjadi pilihan terbaik. Dalam proses pemilihan alat pemprosesan data, PHP menjadi semakin popular di kalangan pembangun sebagai bahasa yang mudah dibangunkan dan diselenggara. Dalam artikel ini, kami akan meneroka cara memanfaatkan PHP untuk pemprosesan data berskala besar dan bagaimana

Enjin pemprosesan data dalam PHP (Spark, Hadoop, dll.) Enjin pemprosesan data dalam PHP (Spark, Hadoop, dll.) Jun 23, 2023 am 09:43 AM

Dalam era Internet sekarang, pemprosesan data secara besar-besaran merupakan masalah yang perlu dihadapi oleh setiap perusahaan dan institusi. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP juga perlu mengikuti perkembangan masa dalam pemprosesan data. Untuk memproses data besar-besaran dengan lebih cekap, pembangunan PHP telah memperkenalkan beberapa alat pemprosesan data besar, seperti Spark dan Hadoop. Spark ialah enjin pemprosesan data sumber terbuka yang boleh digunakan untuk pemprosesan teragih set data yang besar. Ciri terbesar Spark ialah kelajuan pemprosesan data yang pantas dan penyimpanan data yang cekap.

Pengenalan kepada tiga komponen teras hadoop Pengenalan kepada tiga komponen teras hadoop Mar 13, 2024 pm 05:54 PM

Tiga komponen teras Hadoop ialah: Hadoop Distributed File System (HDFS), MapReduce dan Yet Another Resource Negotiator (YARN).

See all articles