【问题标题】:Hive table creating for nested CSV data [duplicate]为嵌套的 CSV 数据创建 Hive 表 [重复]
【发布时间】:2018-05-07 05:25:52
【问题描述】:

我有下面的数据如何为下面的数据创建 hive 表,上面的数据应该只由 3 列 id、sal、name 创建。

1,1000,sdadada
2,2000,sadssaa
3,3000,dasasa,daaaas

【问题讨论】:

  • 请提供您的代码示例。
  • 我已经更新了我的建议,请查看下方,希望它能解决您的问题。
  • 谢谢 vivek,但是当我们必须使用 RegexSerde 时请告诉我
  • 在这种情况下,我们只使用RegexSerde,固定分隔符不是一个好的解决方案。

标签: hadoop hive hql impala


【解决方案1】:

试试吧,它会解决你的问题。

这是我的数据文件包含:

vivekanand@sys:~/vivek/stack$ cat test.dat 
1,1000,sdadada
2,2000,sadssaa
3,3000,dasasa,daaaas

现在您的解决方案就在这里。

hive> create table table_1(
    > id int,
    > sal int,
    > name string)
    > row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe' 
    > WITH SERDEPROPERTIES ('input.regex'='^(\\d+)\\,([^\\,]*)\\,(\\S+).*');
OK
Time taken: 0.331 seconds
hive> load data local inpath '/home/vivekanand/vivek/stack/test.dat' into table table_1;
Loading data to table default.table_1
OK
Time taken: 0.162 seconds
hive> select * from table_1;
OK
1   1000    sdadada
2   2000    sadssaa
3   3000    dasasa,daaaas
Time taken: 0.067 seconds, Fetched: 3 row(s)

【讨论】:

  • 如果我使用上述模式,它不会打印第三行的第二个名称。
  • 你能对其进行数据挖掘吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多