ฉันกำลังพยายามเขียน Pig UDF ใน Scala (โดยใช้ Eclipse) ฉันได้เพิ่ม pig.jar เป็นไลบรารีในเส้นทางการสร้าง java ซึ่งดูเหมือนว่าจะแก้ไขการนำเข้า 2 รายการด้านล่าง:
- นำเข้า org.apache.pig.EvalFunc
- นำเข้า org.apache.pig.data.Tuple
อย่างไรก็ตาม ฉันได้รับข้อผิดพลาด 2 ข้อซึ่งฉันไม่สามารถแก้ไขได้:
- org.apache.pig.EvalFunc[T] ไม่มีตัวสร้าง
- value get ไม่ใช่สมาชิกของ org.apache.pig.data.Tuple (แม้ว่าฉันแน่ใจว่า Tuple มีวิธี get)
นี่คือรหัสเต็ม:
package datesUDFs
import org.apache.pig.EvalFunc
import org.apache.pig.data.Tuple
class getYear extends EvalFunc {
val extractDate = """^(\d\d\d\d)-\d\d-\d\d \d\d:\d\d:\d\d""".r
def isDate(dtString: String): Boolean = extractDate.findFirstIn(dtString).nonEmpty
override def exec(input: Tuple): Int = input.get(0) match {
case dtString: String =>
if (!isDate(dtString)) throw new IllegalArgumentException("Invalid date string!")
else (for (extractDate(year) <- extractDate.findFirstIn(dtString)) yield year).head.toInt
case _ => throw new IllegalArgumentException("Invalid function call!")
}
}
ใครสามารถช่วยฉันแก้ไขปัญหานี้ได้บ้าง
ขอบคุณล่วงหน้า!!!