手动指定数据源类型

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

也可以手动指定用来操作的数据源类型。数据源通常需要使用其全限定名来指定,比如parquet是org.apache.spark.sql.parquet。但是Spark SQL内置了一些数据源类型,比如json,parquet,jdbc等等。实际上,通过这个功能,就可以在不同类型的数据源之间进行转换了。比如将json文件中的数据保存到parquet文件中。默认情况下,如果不指定数据源类型,那么就是parquet。

Java版本

代码语言:javascript复制
DataFrame df = sqlContext.read().format("json").load("people.json");
df.select("name", "age").write().format("parquet").save("namesAndAges.parquet");

Scala版本

代码语言:javascript复制
val df = sqlContext.read.format("json").load("people.json")
df.select("name", "age").write.format("parquet").save("namesAndAges.parquet")

Java版本

代码语言:javascript复制
public class ManuallySpecifyOptions {

public static void main(String[] args) {
​​SparkConf conf = new SparkConf()​​.setAppName("ManuallySpecifyOptions");
​​JavaSparkContext sc = new JavaSparkContext(conf);
​​SQLContext sqlContext = new SQLContext(sc);
DataFrame peopleDF = sqlContext.read().format("json")​​​​.load("hdfs://spark1:9000/people.json");
​​peopleDF.select("name").write().format("parquet")​​​.save("hdfs://spark1:9000/peopleName_java");  
​}
}

Scala版本

代码语言:javascript复制
import org.apache.spark.sql.SQLContext
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object ManuallySpecifyOptions {

def main(args: Array[String]): Unit = {
val conf = new SparkConf()
   .setAppName("ManuallySpecifyOptions")  
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)

val peopleDF = sqlContext.read.format("json").load("hdfs://spark1:9000/people.json")
 peopleDF.select("name").write.format("parquet").save("hdfs://spark1:9000/peopleName_scala")  
 }

}

0 人点赞