โพสต์นี้มีขั้นตอนที่จำเป็นในการสร้าง UDF ใน Apache Pig UDF ทั้งหมดควรขยายฟังก์ชันตัวกรองและต้องมีเมธอดที่เรียกว่า exec ซึ่งมี Tuple ตรรกะที่ใช้ที่นี่คือถ้า Tuple เป็นโมฆะหรือศูนย์มันจะให้ค่าบูลีนแก่คุณ: จริงหรือเท็จ และ 'IsofAge' ใช้สำหรับตรวจสอบว่าอายุที่ระบุถูกต้องหรือไม่ ตรรกะของฟังก์ชันที่กำหนดโดยผู้ใช้ถูกเขียนด้วยโค้ด Java โดยที่ไฟล์ JAR จะถูกสร้างขึ้นแล้วส่งออก ไฟล์ JAR ถูกลงทะเบียนในภายหลัง ไฟล์ JAR เหล่านี้พบได้ในไฟล์ไลบรารีของ Apache Pig ในขณะที่โหลด
IsOfAge คลาสสาธารณะขยาย FilterFunc { @แทนที่ publicBoolean exec (Tuple tuple) พ่นIOException { ถ้า (tuple == null || tuple.size () == 0) { ผลตอบแทน } ลอง{ วัตถุวัตถุ = tuple.get (0) ถ้า (วัตถุ == null) { ผลตอบแทน } inti = (จำนวนเต็ม) วัตถุ ถ้า (ฉัน == 18 || ฉัน == 19 || ฉัน == 21 || ฉัน == 23 || ฉัน == 27) { returntrue } else { ผลตอบแทน }} catch (ExecExceptione) { โยนใหม่IOException (e) }}}
จะเรียกหมู UDF ได้อย่างไร?
เมื่อสร้าง UDF แล้วจะต้องใช้คำสั่งต่อไปนี้เพื่อลงทะเบียนไฟล์ JAR
ลงทะเบียน myudf.jar X = กรอง A โดย IsOfAge (อายุ)
ขั้นตอนในการสร้าง UDF ใน Pig:
มีฟังก์ชันที่กำหนดไว้ล่วงหน้าหลายอย่างใน Apache Pig นอกจากนี้เรายังมีคุณสมบัติในการสร้างฟังก์ชันของเราเองนั่นคือ User Defined Function (UDF) Pig UDF เขียนด้วย Java และต้องใช้ Pig Library เพื่อใช้คลาสที่กำหนดไว้ล่วงหน้า ห้องสมุด Apache Pig หมู 0.8.0-cdh3u0-core.jar สามารถดาวน์โหลดได้ จากอินเทอร์เน็ต
ส่งผ่านค่าและส่งผ่านโดยอ้างอิง java
คลิกที่นี่เพื่อดูขั้นตอนในการสร้าง Pig script ด้วย UDF ในโหมด HDFS
มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป
แปลงสตริงเป็นวันที่ใน java
กระทู้ที่เกี่ยวข้อง:
Apache Pig Script พร้อม UDF ในโหมด HDFS
วิธีตั้งค่า classpath ใน linux
ตัวดำเนินการใน Apache Pig: ตอนที่ 1- ตัวดำเนินการเชิงสัมพันธ์
ตัวดำเนินการใน Apache Pig: ตอนที่ 2 - ตัวดำเนินการวินิจฉัย