首页 > 解决方案 > 使用 Sqoop 命令从 MySQL 到 Hive 动态创建分区键

问题描述

我想通过从 MySQL 导入数据来创建一个 Hive 表。以下命令可以创建表 -

sqoop import \
-D mapred.job.name=name \
-Dorg.apache.sqoop.splitter.allow_text_splitter=true \
-connect "connection_detail" \
-username "username" \
-password "pwd" \
-query "SELECT * FROM schema.tablename WHERE  \$CONDITIONS " \
-null-string '' \
-null-non-string '' \
-fields-terminated-by ',' \
-m 1 \
-hive-overwrite \
--hive-import \
--hive-table tablename \
-map-column-hive z_column=bigint,y_column=int,x_column=int \
-delete-target-dir \
-target-dir  "path_dir"

我现在想在表中创建动态分区列 - 我尝试了以下命令。但是,它给出了下面提到的错误 -

sqoop import \
-D mapred.job.name=name \
-Dorg.apache.sqoop.splitter.allow_text_splitter=true \
-connect "connection_detail" \
-username "username" \
-password "pwd" \
-query "SELECT * FROM schema.tablename WHERE  \$CONDITIONS " \
-null-string '' \
-null-non-string '' \
-fields-terminated-by ',' \
-m 1 \
-hive-overwrite \
--hive-import \
--hive-table tablename \
-map-column-hive z_column=bigint,y_column=int,x_column=int \
--hive-partition-key a_column,b_column,c_column \
--hive-partition-value 'a_data','b_data','c_data' \
-delete-target-dir \
-target-dir  "path_dir"

失败:ParseException 行 1:367 无法识别列类型中“、”“b_column”、“”附近的输入

错误究竟在哪里?

标签: mysqldynamichivesqoopdata-partitioning

解决方案


推荐阅读