1
下面的代碼是它如何使用scala寫入HDFS。什麼是HQL語法來創建一個Hive表來查詢這些數據?我如何從使用數據塊寫入的AVRO文件創建Hive外部表?
import com.databricks.spark.avro._
val path = "/user/myself/avrodata"
dataFrame.write.avro(path)
例子中找到需要提供avro.schema.literal描述架構或avro.schema.url實際Avro的模式。
在火花外殼所有我需要做的閱讀是這樣的:
scala> import com.databricks.spark.avro._
scala> val df = sqlContext.read.avro("/user/myself/avrodata")
scala> df.show()
來自Spark-Avro源代碼的評論指出*「模式進化尚未得到支持,在這裏我們只選擇一個隨機樣本文件來**找出整個數據集的模式** * (https://github.com/databricks/spark-avro/blob/master/src/main/scala/com/databricks/spark/avro/DefaultSource.scala)。 –
Hive不能以這種方式工作,它需要**在CREATE時顯式**當前的AVRO模式。但是文檔(https://cwiki.apache.org/confluence/display/Hive/AvroSerDe)指出有兩種方式可以做到這一點:或者鏈接到AVRO模式(可在本地文件/ URL中使用),或者簡單地列出列,就好像它是一個Text文件一樣,並讓Hive從該SQL模式推斷出AVRO模式。 –