以下代码是使用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()
答案 0 :(得分:0)
所以我作弊要让它发挥作用。基本上我创建了一个临时表,并使用HQL来创建和插入临时表中的数据。此方法使用临时表中的元数据并创建我想要创建和填充的avro目标表。如果数据框可以从其模式创建临时表,为什么不能将表保存为avro?
dataFrame.registerTempTable("my_tmp_table")
sqlContext.sql(s"create table ${schema}.${tableName} stored as avro as select * from ${tmptbl}")