mysql - 使用 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”、“”附近的输入
错误究竟在哪里?
解决方案
推荐阅读
- c++ - 如何使用 C++17 的结构化绑定检测 std::map 的最后一次迭代?
- java - GraalVM 上的 JavaFX 无法使用 FastJson 和 MediaPlayer
- python - 无法使用 keyinterrupt 或以编程方式关闭 python 套接字服务器
- java - 使用 SonarQube 对我的 Spring 批处理项目没有代码覆盖
- python - 为什么我的神经网络预测为 -0(PYTHON - 反向传播 XOR)?
- swift - 自定义 SCNGeometry 节点上基于物理的照明
- python - Python 双重拆分推导
- elasticsearch - 有没有办法让 ElasticSearch 从截断字段创建 n-gram 令牌?
- javascript - 给定的两个词是否是同义词
- npm-install - 为什么我在安装 Nodemon 时遇到错误?