gpt4 book ai didi

hadoop - Sqoop:使用八进制值(\0)作为分隔符

转载 作者:行者123 更新时间:2023-12-02 20:46:22 25 4
gpt4 key购买 nike

由于我在其中一个字段中有特殊字符,因此我想使用较低的值作为分隔符。 Hive与定界符(\ 0)配合正常,但sqoop失败,并显示NoSuchElement Exception。看起来它没有将分隔符检测为\ 0。

这就是我的 hive 一个sqoop脚本的样子。请帮忙。

CREATE TABLE SCHEMA.test
(
name CHAR(20),
id int,
dte_report date
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\0'
LOCATION '/user/$USER/test';

sqoop-export \
-Dmapred.job.name="TEST" \
-Dorg.apache.sqoop.export.text.dump_data_on_error=true \
--options-file ${OPTION_FILE_LOCATION}\conn_mysql \
--export-dir /user/$USER/test \
--input-fields-terminated-by '\0' \
--input-lines-terminated-by '\n' \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
--table MYSQL_TEST \
--validate \
--outdir /export/home/$USER/javalib

在VI编辑器中,定界符看起来像'^ @',而使用od -c时,定界符为\ 0

最佳答案

将可以解决此问题的my sql conn字符串中的字符集设置为UTF 8。

mysql.url=jdbc:mysql://localhost:3306/nbs?useJvmCharsetConverters=false&useDynamicCharsetInfo=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&useEncoding=true

关于hadoop - Sqoop:使用八进制值(\0)作为分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47867231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com