【发布时间】:2018-07-24 07:26:03
【问题描述】:
我的项目涉及将数据从 SQL 数据库迁移到 HDFS,然后创建将数据文件链接到表的 Hive 表。我通过将数据库的内容导出到本地计算机上的 CSV 文件来手动进行迁移,我正在使用 winSCP 将这些内容复制到 hadoop edgenode。我正在运行以下命令:
hadoop fs -mkdir /user/cloudera/project/database/table
紧随其后
hadoop fs -put /home/cloudera/project/table.csv /user/cloudera/project/database/table/table.csv
最后,我正在运行从同一个 shell 脚本文件调用的 hql 脚本:
CREATE TABLE IF NOT EXISTS TABLE_NAME
(
FIELD_ONE STRING,
FIELD_TWO INT,
ETC STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/cloudera/project/database/table'
tblproperties ("skip.header.line.count"="1");
出现的问题是,HDFS 中的行数比 SQL 数据库中的行数多 70 行。我怀疑这个问题的原因是某些行被截断(行的剩余部分被带到下一行)。这会导致额外的行包含完全错误的数据。
什么可能导致此问题,是否有解决方法?
【问题讨论】:
标签: csv hadoop hive hql cloudera-cdh