Hive 是否可以仅将选定列从Avro文件加载到配置单元?

Hive 是否可以仅将选定列从Avro文件加载到配置单元?,hive,avro,Hive,Avro,我需要将Avro文件加载到配置单元。使用以下命令创建表 创建存储为avro位置的外部表tblName'hdfs://host/pathToData'tblproperty('avro.schema.url'='/hdfsPathTo/schema.avsc') 在表上执行选择操作时,我收到一个错误发现空,预期字符串。是否可以加载几列并找到导致此错误的列数据?实际上,您需要首先创建一个指向AVRO文件位置的配置单元外部表,并使用AvroSerDe格式。 在此阶段,不加载任何内容。外部表只是文件上的

我需要将Avro文件加载到配置单元。使用以下命令创建表 创建存储为avro位置的外部表tblName'hdfs://host/pathToData'tblproperty('avro.schema.url'='/hdfsPathTo/schema.avsc')


在表上执行选择操作时,我收到一个错误发现空,预期字符串。是否可以加载几列并找到导致此错误的列数据?

实际上,您需要首先创建一个指向AVRO文件位置的配置单元外部表,并使用AvroSerDe格式。 在此阶段,不加载任何内容。外部表只是文件上的一个掩码。
然后,您可以创建一个内部配置单元表并从外部配置单元表加载数据(预期列)。

如果您已经拥有AVRO文件,则将该文件加载到您选择的目录中的HDFS。接下来,在目录顶部创建一个外部表

CREATE EXTERNAL TABLE external_table_name(col1 string, col2 string, col3 string ) STORED AS AVRO LOCATION '<HDFS location>';
可以使用任何脚本语言或工具中的批处理脚本计划内部表加载


希望这有帮助:)

这不是免费的代码编写服务。到目前为止你尝试了什么?请回答您的问题,并将您的代码发布为!你运行它时发生了什么?你以为会发生什么?您具体遇到了什么问题?无法加载该文件。加载时,我发现一个错误,该错误为空,应为字符串。因此,我们需要筛选一些列,并检查导致错误的列数据。加载文件是不可能的。加载时,我发现一个错误,该错误为空,应为字符串。因此,您希望筛选一些列,并检查导致错误的列数据是在创建表时还是在表上执行SELECT时收到的消息?请使用正确的格式复制/粘贴代码。此外,Avro URL必须以
hdfs://clusteralias/. 执行选择时出错。CREATE语句工作正常,表中定义的所有属性都是字符串类型
CREATE TABLE internal_table_name(col2 string, col3 string) AS SELECT col2, col3 FROM external_table_name