Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何在蜂巢中存储特殊字符?_Hadoop_Apache Spark_Hive_Parquet - Fatal编程技术网

Hadoop 如何在蜂巢中存储特殊字符?

Hadoop 如何在蜂巢中存储特殊字符?,hadoop,apache-spark,hive,parquet,Hadoop,Apache Spark,Hive,Parquet,我一直在玩Spark、蜂巢和拼花地板,我的蜂巢表中有一些数据,下面是它的样子(前面有法语警告): 显然这里出了点问题 我所做的是:我使用spark将teradata表作为数据帧读取,将其存储为拼花文件,然后使用此文件将其存储到hive,下面是我的创建表脚本: CREATE TABLE `table`( `lib` VARCHAR(255), `libelle_sous_cause` VARCHAR(255), ) STORED AS PARQUET LOCATION

我一直在玩Spark、蜂巢和拼花地板,我的蜂巢表中有一些数据,下面是它的样子(前面有法语警告):

显然这里出了点问题

我所做的是:我使用spark将teradata表作为数据帧读取,将其存储为拼花文件,然后使用此文件将其存储到hive,下面是我的创建表脚本:

CREATE TABLE `table`(
   `lib` VARCHAR(255),
   `libelle_sous_cause` VARCHAR(255),
   )
 STORED AS PARQUET
 LOCATION
   'hdfs://location';
我真的不知道是什么原因造成的,这可能是由Teradata>拼花地板或拼花地板>蜂巢之间的一些特殊编码引起的,我不确定


感谢您的帮助。

从Teradata到Hadoop执行sqoop时,我遇到了同样的问题。从Teradata提取数据时,请在
选择
中尝试将可能存在此问题的
varchar
列包装成以下行:

SELECT
NAME,
AGE,
TRIM(CAST(TRANSLATE(COLUMNOFINTEREST USING latin_to_unicode WITH ERROR) AS VARCHAR(50)))
FROM
TABLENAME;
COLUMNOFINTEREST
是将具有特殊字符的列


让我知道这是否有效。

我发现,解决方案是简单地使用
STRING
而不是
VARCHAR

CREATE TABLE `table`(
   `lib` STRING,
   `libelle_sous_cause` STRING,
   )
 STORED AS PARQUET
 LOCATION
   'hdfs://location';
CREATE TABLE `table`(
   `lib` STRING,
   `libelle_sous_cause` STRING,
   )
 STORED AS PARQUET
 LOCATION
   'hdfs://location';