我必须得到每一行的文件名,所以我使用
data = LOAD 'data.csv' using PigStorage(',','-tagFile') AS (filename:chararray);
但在data.csv中,有些列的内容中也有逗号(,),所以我用它来处理逗号问题
data = LOAD 'data.csv' using org.apache.pig.piggybank.storage.CSVExcelStorage()AS (filename:chararray);
但是我没有任何选项可以在csvexcelstorage中使用-tagfile选项。请让我知道如何使用csvexcelstorage和-tagfile选项一次?
谢谢
2条答案
按热度按时间2sbarzqh1#
不能将-tagefile与csvexcelstorage一起使用,因为csvexcelstorage没有-tagfile选项。解决方法是更改文件的分隔符,并将pigstorage与新的分隔符和-tagfile一起使用,或者替换数据中的逗号。
wgx48brx2#
我找到了执行这两个操作的方法(获取每行中的文件名,如果它出现在列内容中,则替换分隔符)
一旦数据加载正确,没有逗号,我就可以自由地执行任何操作。详细的用例可以在我的博客上找到