如何在 Spark SQL 中查询 Avro 表

Posted

技术标签:

【中文标题】如何在 Spark SQL 中查询 Avro 表【英文标题】:How to query Avro table in Spark SQL 【发布时间】:2014-09-16 07:27:30 【问题描述】:

我在 Hive 0.13 中有键/值表(键和值是 avro 类型)。 当我尝试在 Spark SQL 1.1 中运行查询时,出现以下错误(在 Hive 中有效)

spark-sql> describe construct;
...
key struct<constructtype:string,...> from deserializer
value struct<...> from deserializer
...

spark-sql> select key.constructtype, count(*) from construct group by key.constructtype;
...

4/09/16 03:19:30 ERROR thriftserver.SparkSQLDriver: Failed in [select key.constructtype, count(*) from  construct group by key.constructtype]
org.apache.spark.sql.catalyst.errors.package$TreeNodeException: Unresolved attributes: 'key.constructtype,'key.constructtype, tree:
Aggregate ['key.constructtype], ['key.constructtype,COUNT(1) AS c_1#0L]

【问题讨论】:

【参考方案1】:

查看 spark avro 库,看看是否可行:

https://github.com/databricks/spark-avro

【讨论】:

以上是关于如何在 Spark SQL 中查询 Avro 表的主要内容,如果未能解决你的问题,请参考以下文章

值 avro 不是 org.apache.spark.sql.DataFrameReader 的成员

使用 Spark SQL 流时缺少 Avro 自定义标头

Spark sql怎么使用Kafka Avro序列化器

Spark 2.4.0 Avro Java - 无法解析方法from_avro

Spark SQL分区感知查询hive表

databricks avro 架构无法转换为 Spark SQL 结构类型