1

下面的代码是如何使用 scala 将其写入 HDFS。创建 Hive 表来查询此数据的 HQL 语法是什么?

import com.databricks.spark.avro._
val path = "/user/myself/avrodata"
dataFrame.write.avro(path)

我发现的示例需要提供一个avro.schema.literal来描述架构或提供一个avro.schema.url到实际的 avro 架构。

在 spark-shell 中,我需要做的就是阅读这个:

scala> import com.databricks.spark.avro._
scala> val df = sqlContext.read.avro("/user/myself/avrodata")
scala> df.show()
4

1 回答 1

0

所以我作弊让这个工作。基本上我创建了一个临时表并使用 HQL 从临时表中创建和插入数据。此方法使用临时表中的元数据并创建我想要创建和填充的 avro 目标表。如果数据框可以从其模式创建一个临时表,为什么它不能将表保存为 avro?

dataFrame.registerTempTable("my_tmp_table")
sqlContext.sql(s"create table ${schema}.${tableName} stored as avro as select * from ${tmptbl}")
于 2016-08-21T16:59:38.810 回答