2016-05-23 82 views
1

我試圖將Spark中的數據框轉換爲配置單元表。我從一個XML文件讀取了一個數據框。它使用SQL上下文來執行此操作。我想將此數據框保存爲配置表。我收到此錯誤:在Spark Scala中將數據框轉換爲配置單元表

"WARN HiveContext$$anon$1: Could not persist database_1 . test_table in a Hive compatible way. Persisting it into Hive metastore in Spark SQL specific format."

object spark_conversion { 
def main(args: Array[String]): Unit = { 

if (args.length < 2) { 
    System.err.println("Usage: <input file> <output dir>") 
    System.exit(1) 
} 
val in_path = args(0) 
val out_path_csv = args(1) 
val conf = new SparkConf() 
     .setMaster("local[2]") 
     .setAppName("conversion") 
val sc = new SparkContext(conf) 

val hiveContext = new HiveContext(sc) 

val df = hiveContext.read 
    .format("com.databricks.spark.xml") 
    .option("rowTag", "PolicyPeriod") 
    .option("attributePrefix", "attr_") 
    .load(in_path) 

df.write 
    .format("com.databricks.spark.csv") 
    .option("header", "true") 
    .save(out_path_csv) 

df.saveAsTable("database_1.test_table") 

df.printSchema() 
df.show() 
+0

什麼是你所面臨的問題? saveAsTable沒有爲你工作? – Shashi

+0

所以你創建一個'HiveContext',這是一個好的開始。 **只要使用它!** E.g. 'df = hiveContext.read ....' –

+0

好吧,我添加了上下文。但是我收到這個錯誤:WARN HiveContext $$ anon $ 1:無法以Hive兼容的方式持久保存'database_1'.'test_table'。以Spark SQL特定格式將其保存到Hive Metastore中。 – Defcon

回答

相關問題