Csv 将制表符分隔的数据读入配置单元数组
我需要的数据格式:Csv 将制表符分隔的数据读入配置单元数组,csv,awk,sed,hive,Csv,Awk,Sed,Hive,我需要的数据格式: 12cef8e1b711a351 [1377045694501,1377045728475,1377045709652] 12cf3cb988f10a87 [1380741459591,1380739871201,1380739785397,1380740303830,1380739849591] 12d1be8adb90a88b [1375541238666,1375541281821] 12d29b
12cef8e1b711a351 [1377045694501,1377045728475,1377045709652]
12cf3cb988f10a87 [1380741459591,1380739871201,1380739785397,1380740303830,1380739849591]
12d1be8adb90a88b [1375541238666,1375541281821]
12d29ba61341e7ce [1377855844089,1377855785342]
12d2e28e50d42d19 [1381974506104,1381973579872,1377988785664,1381976074258]
我拥有的数据格式-所有内容都以制表符分隔:
12cef8e1b711a351 1377045694501 377045728475 1377045709652
12cf3cb988f10a87 1380741459591 1380739871201 1380739785397 1380740303830 1380739849591
12d1be8adb90a88b 1375541238666 1375541281821
12d29ba61341e7ce 1377855844089 1377855785342
12d2e28e50d42d19 1381974506104 1381973579872 1377988785664 1381976074258
如何处理制表符分隔的数据,以便第一个字段用制表符与其余字段分隔,其他所有字段用逗号分隔并用[]包围。可能,每个逗号分隔的项目也必须结束为“”
我需要将这些数据读入配置单元表
CREATE TABLE id_timestamps (id STRING, timestamps array<STRING>);
创建表id\u时间戳(id字符串、时间戳数组);
我可以用一些技巧将它直接读到Hive中吗?或者我可以用awk或sed转换制表符分隔的数据吗?请提供一些建议和食谱
谢谢 此awk脚本生成所需的格式:
awk '{printf "%s\t[", $1; for(i=2;i<=NF;++i) printf "%s%s", $i, (i<NF?",":"]\n")}' file
awk'{printf”%s\t[“,$1;用于(i=2;我的工作很有魅力。顺便说一句,为了加载到配置单元中,我使用了创建表…行格式分隔字段,以“\t”集合项结尾,以“\n”结尾,以“\t”行结尾,以“\n”行结尾,存储为TEXTFILE;我想知道是否可以为字段和集合使用相同的分隔符?然后我可以完全跳过这一步,加载到Hiv中我很高兴它为你工作。不幸的是,我对蜂箱不太熟悉,所以我不知道如何回答你的问题。如果你原来的问题被解决了,请考虑接受我的回答,如果你发现它有用的话,请你投票。如果你被困在更具体的蜂箱里,你可以问一个新的问题。
$ awk '{printf "%s\t[", $1; for(i=2;i<=NF;++i) printf "%s%s", $i, (i<NF?",":"]\n")}' file
12cef8e1b711a351 [1377045694501,377045728475,1377045709652]
12cf3cb988f10a87 [1380741459591,1380739871201,1380739785397,1380740303830,1380739849591]
12d1be8adb90a88b [1375541238666,1375541281821]
12d29ba61341e7ce [1377855844089,1377855785342]
12d2e28e50d42d19 [1381974506104,1381973579872,1377988785664,1381976074258]