Database 将CSV加载到表时出错
我的CSV文件包含公司员工的详细信息。一列包含员工的工资(例如-4000美元)。 因此,当我编写一个脚本以“,”分隔将数据加载到表中时,它分别将我的薪水列作为4&000。如何处理 CSV文件示例- 澳大利亚,35-39岁,咨询,创业(1-25岁),网络应用开发人员,“10001-25000美元”,企业级 表代码- 创建表格调查 ( 国家弦, 年龄串, 行业类型字符串, 公司类型字符串, 职业字符串, 工资串, 项目字符串) 行格式分隔 以“,”结尾的字段 参考资料: 遵循Apache的DDL语法,更具体地说,为了更改Database 将CSV加载到表时出错,database,csv,hadoop,hive,rdbms,Database,Csv,Hadoop,Hive,Rdbms,我的CSV文件包含公司员工的详细信息。一列包含员工的工资(例如-4000美元)。 因此,当我编写一个脚本以“,”分隔将数据加载到表中时,它分别将我的薪水列作为4&000。如何处理 CSV文件示例- 澳大利亚,35-39岁,咨询,创业(1-25岁),网络应用开发人员,“10001-25000美元”,企业级 表代码- 创建表格调查 ( 国家弦, 年龄串, 行业类型字符串, 公司类型字符串, 职业字符串, 工资串, 项目字符串) 行格式分隔 以“,”结尾的字段 参考资料: 遵循Apache的DDL语法
字段/行/etc
属性,您可以使用:
- 本机SerDe(如果未指定
行格式,或设置了带分隔符的
行格式),或
- 一个自定义SerDe(通过应用
子句)SerDe
salary
字段中的字符)将/应该自动转义,并因此保存为相应列值的一部分
祝你好运。请给我们看看你的sql语句。@aendeerei添加了表代码。这可能是因为使用字符串表示工资吗?转换excel csv时,工资列自动转换为双引号。编辑“薪资”列将不可行,因为该文件包含2000多个用户和10多个此类文件的此类信息。尝试时出现一些错误。在问题中编辑。显示行
行格式序列…
。您使用的是哪个配置单元版本?行格式SERDE'com.bizo.Hive.SERDE.csv.CSVSerde'和SERDEPROPERTIES(“separatorchar”=”,“,“quoteChar”=”,“escapeChar”=“\”)存储为TEXTFILE;
HIVE VERSIOn-1.1.0我将您现在拥有的serde字符串放在我的答案的第一个版本中!它是错误的,所以我已经在11月8日重新编辑了它。例如,我通过了正确的Apache serde。请再次阅读我的答案,并从中获取当前的行格式serde…
。此外,您犯了一个错误:它应该是beseparatorChar
非separatorChar
。
CREATE TABLE survey(country string, age string, industryType string, companyType string, occupation string, salary string, project string)
ROW FORMAT DELIMITED
FIELDS
TERMINATED BY ","
ESCAPED BY "\\"
LINES TERMINATED BY "\n"
STORED AS TEXTFILE;
CREATE TABLE survey(country string, age string, industryType string, companyType string, occupation string, salary string, project string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = "\"",
"escapeChar" = "\\"
)
STORED AS TEXTFILE;