อ่านไฟล์ asciif แบบไม่คั่นด้วย Apache Pig Latin

ฉันกำลังพยายามอ่านไฟล์ข้อความใน Apache Pig Latin ที่มี ASCII แบบไม่คั่นซึ่งประกอบด้วยแต่ละแถว กล่าวคือ แต่ละคอลัมน์ในแถวนั้นเริ่มต้นและสิ้นสุดที่ตำแหน่งเฉพาะในแถว

คำจำกัดความตัวอย่าง:

+--------+----------------+--------------+
| Column | Start Position | End Position |
+--------+----------------+--------------+
| A      | 1              | 6            |
+--------+----------------+--------------+
| B      | 8              | 11           |
+--------+----------------+--------------+
| C      | 13             | 15           |
+--------+----------------+--------------+

ข้อมูลตัวอย่าง:

+---+---+---+---+---+---+---+----+---+----+----+----+----+----+----+
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8  | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
+---+---+---+---+---+---+---+----+---+----+----+----+----+----+----+
| s | a | m | p | l | e |   | d  | a | t  | a  |    |    | h  | i  |
+---+---+---+---+---+---+---+----+---+----+----+----+----+----+----+
| d | u | d | e |   |   |   | hi |   |    |    |    | b  | r  | o  |
+---+---+---+---+---+---+---+----+---+----+----+----+----+----+----+

ผลลัพธ์ที่คาดหวัง:

sample, data, hi
dude, hi, bro

ฉันจะอ่านสิ่งนี้ใน Pig ได้อย่างไร PigStorage ดูเหมือนจะไม่ยืดหยุ่นพอที่จะอนุญาตให้ใช้การกำหนดตำแหน่งได้ แต่จะกำหนดเฉพาะสตริงเท่านั้น (ลูกน้ำ แท็บ ฯลฯ)


person ph34r    schedule 08.07.2016    source แหล่งที่มา


คำตอบ (1)


ดูเหมือนว่า Apache จะมีตัวโหลดสำหรับกรณีการใช้งานเฉพาะนี้:

LOAD 'data.txt' USING org.apache.pig.piggybank.storage.FixedWidthLoader('1-6, 8-11, 13-15', 'SKIP_HEADER') AS (a, b, c); 

https://pig.apache.org/docs/r0.16.0/api/

person ph34r    schedule 08.07.2016