Hadoop Pig Algebraic Interface
仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。 一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口 此接口要实现 三个方法,这三个方法都是返回具体实现的 class name 并且这些 class name都要实现 exec方法 public
仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。
一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口
此接口要实现 三个方法,这三个方法都是返回具体实现的 class name
并且这些 class name都要实现 exec方法
<code> public interface Algebraic{ public String getInitial(); public String getIntermed(); public String getFinal(); } </code>
看 pig built in COUNT 的实现
这几个方法都可以对应对相关的hadoop 的map combine,reduce
map 对应 Initial
combine 对应 Intermed
reduce 对应 reduce
发现 java 的内部静态内还是很有用的
<code>public class COUNT extends EvalFunc<long> implements Algebraic{ public Long exec(Tuple input) throws IOException {return count(input);} public String getInitial() {return Initial.class.getName();} public String getIntermed() {return Intermed.class.getName();} public String getFinal() {return Final.class.getName();} static public class Initial extends EvalFunc<tuple> { public Tuple exec(Tuple input) throws IOException {return TupleFactory.getInstance().newTuple(count(input));} } static public class Intermed extends EvalFunc<tuple> { public Tuple exec(Tuple input) throws IOException {return TupleFactory.getInstance().newTuple(sum(input));} } static public class Final extends EvalFunc<long> { public Tuple exec(Tuple input) throws IOException {return sum(input);} } static protected Long count(Tuple input) throws ExecException { Object values = input.get(0); if (values instanceof DataBag) return ((DataBag)values).size(); else if (values instanceof Map) return new Long(((Map)values).size()); } static protected Long sum(Tuple input) throws ExecException, NumberFormatException { DataBag values = (DataBag)input.get(0); long sum = 0; for (Iterator (Tuple) it = values.iterator(); it.hasNext();) { Tuple t = it.next(); sum += (Long)t.get(0); } return sum; } } </long></tuple></tuple></long></code>
原文地址:Hadoop Pig Algebraic Interface, 感谢原作者分享。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











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

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

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

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

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'

Bagaimanakah PHP8 menggunakan StringableInterface untuk mengendalikan pelbagai jenis rentetan? PHP8 memperkenalkan antara muka baharu Stringable, yang boleh membantu pembangun memproses pelbagai jenis rentetan dengan lebih mudah. Pada masa lalu, kami biasanya menggunakan fungsi is_string() untuk menentukan sama ada pembolehubah adalah daripada jenis rentetan, dan kemudian melaksanakan operasi yang sepadan. Kini, dengan antara muka Stringable, kami boleh mengendalikan rentetan dengan lebih intuitif tanpa perlu menentukan jenisnya.

Antara muka dalam bahasa Go ialah jenis yang sangat istimewa yang boleh mengabstrak mana-mana jenis data dengan ciri tertentu dan boleh melakukan penukaran jenis. Ciri ini menjadikan antara muka memainkan peranan yang sangat penting dalam bahasa Go, tetapi penukaran jenis antara muka juga merupakan isu yang agak kompleks yang memerlukan kami membincangkan dan memahami dengan teliti.

Dalam semantik bahasa Go, selagi sesuatu jenis melaksanakan set kaedah yang ditentukan, ia dianggap sebagai jenis yang sama dan perkara yang sama. Orang sering memanggilnya menaip itik kerana ia agak konsisten dengan definisi menaip itik.
