Hive 配置单元表返回空值的原因
我将其编码为创建一个外部表:Hive 配置单元表返回空值的原因,hive,Hive,我将其编码为创建一个外部表: CREATE EXTERNAL TABLE IF NOT EXISTS carss ( > maker STRING, > model STRING, > mileage FLOAT, > manufacture_year INT, > engine_displacement FLOAT, > engine_power STRING, > body_type STRING, > color_slug STRING,
CREATE EXTERNAL TABLE IF NOT EXISTS carss (
> maker STRING,
> model STRING,
> mileage FLOAT,
> manufacture_year INT,
> engine_displacement FLOAT,
> engine_power STRING,
> body_type STRING,
> color_slug STRING,
> stk_year FLOAT,
> transmission STRING,
> door_count INT,
> seat_count INT,
> fuel_type STRING,
> date_created DATE,
> date_last_seen DATE,
> price_eur FLOAT)
> ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
> LOCATION '/BigData/Project2/'
> TBLPROPERTIES ("skip.header.line.count"="1", 'creator'='Janina', 'created_on'='2020-11-05', 'description'='dataset for classified Ads of cars in Germany and Czech Republic');
当我运行查询时,从carss LIMIT 1中选择*;它返回空值和奇怪的字符
hive> SELECT * FROM carss LIMIT 1;
嗯
��T�;��9fu7z�C�WHqd��Y�P�C��/�^�B�4.���*G����Ç�ǿN������Y�z~>����Ǘ�?�面向对象��ӿ��������R�������������ݷ����|������N����R����������o����������2}�����x=�ʗ����/�||;������9������߯�����z~:���~��\���/��㏟�vZ)5�5.��_我�4.���
�erS�>�O��D��我�O����տ�?D���?�o��D��1.�_v�K�����?�H����.��������|�� 您在
/BigData/Project2/
中的文件是否用utf-8编码?如果没有,则在创建外部表时可能需要指定基础文件的编码:
create external table carss
...
row format
serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
with serdeproperties("serialization.encoding"='WINDOWS-1252')
location
...
这可能会有帮助。您的文件是否在
/BigData/Project2/
中以utf-8编码?如果没有,则在创建外部表时可能需要指定基础文件的编码:
create external table carss
...
row format
serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
with serdeproperties("serialization.encoding"='WINDOWS-1252')
location
...
这可能会有帮助。您是否检查了location/BigData/Project2中hdfs中的数据?您可以运行文件的hdfs dfs-tail path,以查看记录是否也具有相同的字符。是否检查了location/BigData/Project2中hdfs中的数据?您可以运行文件的hdfs dfs-tail path,以查看记录是否也具有相同的字符。