错误:notimplementedexception:不支持以“text”格式扫描表,因为该表的列具有复杂类型“array< string>”

bvuwiixz  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(411)

我对大数据技术有了新的认识。我用列数据类型数组创建了一个表。

CREATE TABLE movies (
    movie_id int, 
    title string, 
    genres ARRAY<STRING>
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ':' 
COLLECTION ITEMS TERMINATED BY '|' 
MAP KEYS TERMINATED BY '#' 
LINES TERMINATED BY '\n';

并将一些数据加载到表中。现在我运行一个select查询,然后它在impala中显示下面的错误。

SELECT COUNT(*) AS total_movies FROM movies;

ERROR: NotImplementedException: Scan of table 'assignment_hive_impala.movies' in format 'TEXT' is not supported because the table has a column 'genres' with a complex type 'ARRAY<STRING>'.
Complex types are supported for these file formats: PARQUET.

我不知道它为什么显示这个错误。有人能解释一下错误并帮我解决吗?
谢谢您

ifsvaxew

ifsvaxew1#

看起来您正在从文本文件加载(或源文件/数据)数据。如错误中所述,您不能使用复杂类型的文本文件。
如果确实需要使用复杂类型进行测试,请将源数据转换为parquet并加载数据
您可以按照此链接将文件(这里是csv)转换为parquet。

相关问题