val data = sc.textFile("data.txt")
*// The schema is encoded in a string*
val schemaString = "text code"
*// Import Row.*
import org.apache.spark.sql.Row;
*// Import Spark SQL data types*
import org.apache.spark.sql.types.{StructType,StructField,StringType};
*// Generate the schema based on the string of schema*
val schema = StructType(schemaString.split(" ").map(fieldName => StructField(fieldName, StringType, true)))
*// Convert records of the RDD (data) to Rows.*
val rowRDD = data.map(_.split(",")).map(p => Row(p(0), p(1).trim))
*// Apply the schema to the RDD.*
val dataDataFrame = sqlContext.createDataFrame(rowRDD, schema)
*// Register the DataFrames as a table.*
dataDataFrame.registerTempTable("data")
*// SQL statements can be run by using the sql methods provided by sqlContext.*
val results = sqlContext.sql("SELECT name FROM data")
从所有文件中添加数据不是一个好主意,因为所有的数据都会被加载到内存中。一次只读一个文件将是更好的方法。
但是,根据您的使用情况,如果您需要所有文件的数据,则需要以某种方式追加rdds。
希望能回答你的问题! 干杯! :)
你甚至试图看文档? – Niemand