使用Apache Pig加载数据到Hbase表时,如何排除csv中没有数据(只有空格)的列或行的文本文件?

时间:2017-11-21 12:50:21

标签: csv hadoop hbase apache-pig

考虑我有一个名为customer_table的表,其中数据为列族,现在我有一个文本文件如下:

custno,firstname,lastname,age,profession

(这些是列名,不在文本或csv文件中)

1,John,Wright,54,Coach  
2,Luke,,20,Student  
3,Mike,Jordan,26,    
4,William,Jones,21,Teacher

此处在第2行和第3行中,列的姓氏和职业分别没有值。

现在我想要

STORE variable INTO 'hbase://customer_table' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage()

仅为特定行排除那些列(没有数据或只有空格)。请告诉我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以在foreach ... generate语句中使用嵌套的biconditionals。另一种选择是使用UDF。

作为评论,无论哪种方式,您将丢失一个模式,因此您的字段将是无名的,并且值将在pig中为bytearrays。我个人从未尝试过将这些行写入hbase。所以不知道,它们会是什么样子,你怎么能访问它们。我希望你有充分的理由做这样的事情。