Database 将CSV加载到表时出错

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语法

我的CSV文件包含公司员工的详细信息。一列包含员工的工资(例如-4000美元)。 因此,当我编写一个脚本以“,”分隔将数据加载到表中时,它分别将我的薪水列作为4&000。如何处理

CSV文件示例- 澳大利亚,35-39岁,咨询,创业(1-25岁),网络应用开发人员,“10001-25000美元”,企业级

表代码-

创建表格调查 ( 国家弦, 年龄串, 行业类型字符串, 公司类型字符串, 职业字符串, 工资串, 项目字符串) 行格式分隔 以“,”结尾的字段

参考资料: 遵循Apache的DDL语法,更具体地说,为了更改
字段/行/etc
属性,您可以使用:

  • 本机SerDe(如果未指定
    行格式,或设置了带分隔符的
    行格式),或
  • 一个自定义SerDe(通过应用
    SerDe
    子句)
选项1:使用本机Serde 请注意,缺少一个子句来指定引用字段值的字符

选项2:使用自定义Serde 请参阅中表格中名为“CSV/TSV”的记录

我建议您使用包含一行值的CSV文件进行测试。在该行中,将所有列值括在双引号中,然后查看发生了什么。如果是封闭的,则“,”字符(如
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…
。此外,您犯了一个错误:它应该是be
separatorChar
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;