這個DataFrame方法如何...
1)從CSV創建一個數據框。
how-to-read-csv-file-as-dataframe 或類似的例子。
val csv = sqlContext.sparkContext.textFile(csvPath).map {
case(txt) =>
try {
val reader = new CSVReader(new StringReader(txt), delimiter, quote, escape, headerLines)
val parsedRow = reader.readNext()
Row(mapSchema(parsedRow, schema) : _*)
} catch {
case e: IllegalArgumentException => throw new UnsupportedOperationException("converted from Arg to Op except")
}
}
2)創建從HBase的數據的另一個數據幀(如果使用的是Hortonworks)或phoenix。
3)不加入和應用功能(可以是UDF或othewise時..等)和所得文件可能是一個數據幀再次
4)加入與第二表&輸出數據作爲CSV作爲結果數據幀以下面的僞代碼爲例...
應該可以使用自定義列和相應的值準備數據幀並保存爲CSV文件。 你也可以在火星殼中使用這種類型。
val df = sqlContext.read.format("com.databricks.spark.csv").
option("header", "true").
option("inferSchema","true").
load("cars93.csv")
val df2=df.filter("quantity <= 4.0")
val col=df2.col("cost")*0.453592
val df3=df2.withColumn("finalcost",col)
df3.write.format("com.databricks.spark.csv").
option("header","true").
save("output-csv")
希望這會有所幫助..祝你好運。
你真的需要中間文件嗎?你肯定不需要解析文件,如果你有RDD產生它 –
是的我同意@ cricket_007該文件可以是另一個數據幀。不是嗎? –
我不認爲需要花費時間的是解析,而是在表格上啓動1100個查詢。這個問題的答案很廣泛。您是否願意詳細說明您的文件中有哪些查詢,這樣我們才能真正提供幫助! – eliasah