根据HDFS 文档,hadoop fs -text <file>
可用于“zip 和 TextRecordInputStream”数据,因此您的数据可能是其中一种格式。
如果文件被压缩了,通常 Hadoop 会在输出到 HDFS 时添加扩展名,但如果缺少这个,您可以尝试在本地解压缩/ungzipping/unbzip2ing/etc 进行测试。看起来 Pig 应该自动解压缩,但可能需要存在文件扩展名(例如 part-r-00000.zip)——更多信息。
我不太确定 TextRecordInputStream .. 听起来它只是 Pig 的默认方法,但我可能是错的。当我快速谷歌时,我没有看到任何关于通过 Pig 加载这些数据的内容。
更新:
由于您发现它是一个序列文件,因此您可以使用 PiggyBank 加载它:
-- using Cloudera directory structure:
REGISTER /usr/lib/pig/contrib/piggybank/java/piggybank.jar
--REGISTER /home/hadoop/lib/pig/piggybank.jar
DEFINE SequenceFileLoader org.apache.pig.piggybank.storage.SequenceFileLoader();
-- Sample job: grab counts of tweets by day
A = LOAD 'mydir/part-r-000{00..99}' # not sure if pig likes the {00..99} syntax, but worth a shot
USING SequenceFileLoader AS (key:long, val:long, etc.);