如何使用databricks从AVRO文件创建Hive外部表?

时间:2016-08-19 17:29:34

标签: scala apache-spark hive avro databricks

以下代码是使用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()

1 个答案:

答案 0 :(得分:0)

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

dataFrame.registerTempTable("my_tmp_table")
sqlContext.sql(s"create table ${schema}.${tableName} stored as avro as select * from ${tmptbl}")