对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。load操作主要用于加载数据,创建出DataFrame;save操作,主要用于将DataFrame中的数据保存到文件中。
Java版本
代码语言:javascript复制DataFrame df = sqlContext.read().load("users.parquet");
df.select("name", "favorite_color").write().save("namesAndFavColors.parquet");
Scala版本
代码语言:javascript复制val df = sqlContext.read.load("users.parquet")
df.select("name", "favorite_color").write.save("namesAndFavColors.parquet")
第一步上传user.parquet文件
代码语言:javascript复制Hadoop fs -put user.parquest /
第二步上传jar包
Java代码如下:
代码语言:javascript复制public class GenericLoadSave {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("GenericLoadSave").setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new SQLContext(sc);
DataFrame usersDF = sqlContext.read().load("hdfs://spark1:9000/users.parquet");
usersDF.show();
}
}
public class GenericLoadSave {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("GenericLoadSave");
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new SQLContext(sc);
DataFrame usersDF = sqlContext.read().load("hdfs://spark1:9000/users.parquet");
usersDF.select("name","favorite_color").write().save("namesAndColors.parquet");
}
}
Scala版本
代码语言:javascript复制import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext
import org.apache.spark.SparkContext
object GenericLoadSave {
def main(args: Array[String]){
val conf = new SparkConf().setAppName("GenericLoadSave")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val usersDF = sqlContext.read.load("hdfs://spark1:9000/users.parquet")
usersDF.select("name", "favorite_color").write.save("hdfs://spark1:9000/namesAndFavColors.parquet")
}
}