我有一个包含字符串和int值的文件。所有字符串都使用“”
int_value1, "string_value2", int_value3, "string_value4"
在HIVE中创建EXTERNAL TABLE
时,我需要使用什么参数来获取所有字符串而不是“?
问候
的Pawel
答案 0 :(得分:2)
您可以使用csv-serde或regex-serde来实现您的目标。
答案 1 :(得分:2)
你能试试吗?根据您的需要将表格更改为外部。
input.txt
100, "string1", 200, "string2"
300, "string3", 400, "string4"
hive> CREATE TABLE test_regex(
> ivalue1 STRING,
> svalue1 STRING,
> ivalue2 STRING,
> svalue2 STRING)
> ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
> WITH SERDEPROPERTIES ("input.regex" = "^([0-9]+),\\s+\"(.*)\",\\s+([0-9]+),\\s+\"(.*)\"$","output.format.string" = "%1$s %2$s %3$s %4$s")
> STORED AS TEXTFILE;
OK
Time taken: 1.091 seconds
hive> load data local inpath 'input.txt' overwrite into table test_regex;
OK
Time taken: 0.391 seconds
hive> select *from test_regex;
OK
100 string1 200 string2
300 string3 400 string4
Time taken: 0.212 seconds
hive>