我一直在玩Spark,Hive和Parquet,我的Hive表中有一些数据,这就是它的样子(提前警告法语):
Bloqu� � l'arriv�e NULL
Probl�me de connexion Bloqu� en hub
显然这里有问题。
我所做的是:我将teradata表作为带有spark的数据框读取,我将其存储为镶木地板文件,然后我使用此文件将其存储到hive,这是我的创建表脚本:
CREATE TABLE `table`(
`lib` VARCHAR(255),
`libelle_sous_cause` VARCHAR(255),
)
STORED AS PARQUET
LOCATION
'hdfs://location';
我真的不知道是什么原因引起的,这可能是由Teradata>之间的一些特殊编码引起的。镶木地板或镶木地板> Hive,我不确定。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
我认为,解决方法是简单地使用STRING
代替VARCHAR
CREATE TABLE `table`(
`lib` STRING,
`libelle_sous_cause` STRING,
)
STORED AS PARQUET
LOCATION
'hdfs://location';
答案 1 :(得分:0)
从Teradata到Hadoop执行sqoop时遇到了同样的问题。从Teradata中提取时,在SELECT
中,请尝试使用此行包装可能存在此问题的varchar
列:
SELECT
NAME,
AGE,
TRIM(CAST(TRANSLATE(COLUMNOFINTEREST USING latin_to_unicode WITH ERROR) AS VARCHAR(50)))
FROM
TABLENAME;
COLUMNOFINTEREST
是您的专栏中的特殊字符。
如果有效,请告诉我。