簡體   English   中英

如何使用PIG / HIVE / HBASE從文件動態加載沒有文本限定符的數據?

[英]How to load the data without text qualifiers dynamically from a file using PIG/HIVE/HBASE?

我的csv文件包含150列! 它包含""作為文本限定符。 如何使用pig/hive/hbase dynamic腳本刪除引號( "" )? 同樣,我有多個文件(50個具有不同列的csv文件)。 如何從不同文件中刪除這些""

我嘗試使用以下豬腳本在文件中的2列:

A = LOAD 'hdfs://<hostname>:<port>/user/test/input.csv' AS line;
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'"(.*)","(.*)"')) AS (id:int,name:chararray);
STORE B INTO '/user/test/output' USING PigStorage(',');

任何幫助,將不勝感激。

你可以這樣嘗試嗎?

input.txt

"123","456","789"
"abc","def","ghi"

PigScript:

A = LOAD 'input.txt' AS line;
B = FOREACH A GENERATE REPLACE(line,'\\"','') AS line1;
C = FOREACH B GENERATE FLATTEN(STRSPLIT(line1,'\\,',3));
D = FOREACH C GENERATE $0,$1,$2;
DUMP D;

輸出:

(123,456,789)
(abc,def,ghi)

在您的情況下,您可以將上面的第三行更改為STRSPLIT(line1,'\\\\,',150) ,其中150是列的總數,您可以按$0,$1...$149訪問所有值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM