【问题标题】:how to load .dat file to hive or hdfs?如何将 .dat 文件加载到 hive 或 hdfs?
【发布时间】:2017-08-29 05:00:57
【问题描述】:

如何将 .dat 文件加载到 hive 或 cloudera 或 hdfs?

这种格式需要用pig转成结构化格式吗?

如果是的话,有人可以提供猪脚本将其转换为结构数据吗?

当我在 notepad++ 中打开 .dat 文件时,我的数据如下所示

Americas¤AME  ¤ZONE¤ ¤¤¤Active¤
Asia-Pacific¤APA  ¤ZONE¤ ¤¤¤Active¤
Europe¤EUR  ¤ZONE¤ ¤¤¤Active¤
Middle East, India and Africa¤MAI  ¤ZONE¤ ¤¤¤Active¤
Unidentified¤999  ¤ZONE¤ ¤¤¤Active¤
Afghanistan¤AF   ¤COUNTRY¤ ¤MAI  ¤ZONE¤Active¤3
Albania¤AL   ¤COUNTRY¤ ¤EUR  ¤ZONE¤Active¤1
Algeria¤DZ   ¤COUNTRY¤ ¤MAI  ¤ZONE¤Active¤3
American Samoa¤AS   ¤COUNTRY¤ ¤APA  ¤ZONE¤Active¤3
Andorra¤AD   ¤COUNTRY¤ ¤EUR  ¤ZONE¤Active¤1
Angola¤AO   ¤COUNTRY¤ ¤MAI  ¤ZONE¤Active¤1

【问题讨论】:

  • .dat 不表示格式。您的数据似乎被分隔。请将od -Anone -N50 -w50 -tx1a yourfile的结果添加到您的帖子中

标签: hadoop hive hdfs apache-pig


【解决方案1】:

您只是想在 hdfs 中加载数据吗?

hadoop fs -put ./myfile.dat /home/hadoop/dir

现在您的文件位于 hdfs 中,您可以使用数据中的分隔符在代码中使用它。 刚刚用'¤'检查了数据

   cat spch.dat | awk -F'¤' '{print $1,$2,$3,$4,$5}'

美洲 AME ZONE
亚太区APA区
欧洲欧元区
中东、印度和非洲 MAI ZONE

// Pig 
A = LOAD '/hadoop/dir/myfile.dat' usig PigStorage('¤') as (field1,filed2 ..);
// use the fields

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多