Baca file asciif yang tidak dibatasi Apache Pig Latin

Saya mencoba membaca file teks dalam Apache Pig Latin yang memiliki ascii tidak terbatas yang terdiri dari setiap baris. Artinya, setiap kolom dalam baris tersebut dimulai dan diakhiri pada posisi tertentu dalam baris tersebut.

Definisi sampel:

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

Contoh data:

+---+---+---+---+---+---+---+----+---+----+----+----+----+----+----+
| 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  |
+---+---+---+---+---+---+---+----+---+----+----+----+----+----+----+

Hasil yang Diharapkan:

sample, data, hi
dude, hi, bro

Bagaimana cara membaca ini di Pig? PigStorage tampaknya tidak cukup fleksibel untuk memungkinkan pembatasan posisi, hanya pembatasan string (koma, tab, dll.).


person ph34r    schedule 08.07.2016    source sumber


Jawaban (1)


Sepertinya Apache menyediakan pemuat untuk kasus penggunaan khusus ini:

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