通用的load和save操作

2023-02-25 15:51:10 浏览数 (2)

对于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")
}
}

0 人点赞