美文网首页
手动指定数据源类型

手动指定数据源类型

作者: 一个人一匹马 | 来源:发表于2019-02-21 21:33 被阅读0次

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

    Java版本

    DataFrame df = sqlContext.read().format("json").load("people.json");
    df.select("name", "age").write().format("parquet").save("namesAndAges.parquet");
    

    Scala版本

    val df = sqlContext.read.format("json").load("people.json")
    df.select("name", "age").write.format("parquet").save("namesAndAges.parquet")
    

    Java版本

    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版本

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

    相关文章

      网友评论

          本文标题:手动指定数据源类型

          本文链接:https://www.haomeiwen.com/subject/eqcjyqtx.html