1. 程式人生 > >spark-SQL的DataFrame和DataSet

spark-SQL的DataFrame和DataSet

       方法一: 

                 sqlContext.read() 返回DataFrameReader物件 sqlContext.read().json("student.json")讀取一個json檔案(這個json檔案中的內容不能是巢狀的)讀進來變成DataFrame,          df.select("age").show(),如果沒有show,這個程式就不會執行,這個show就類似與Spark中Action型別的運算元,觸發執行
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.SQLContext;

public class TestSparkSQL {
    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setAppName("DataFrameOps").setMaster("local");
        
        JavaSparkContext sc = new JavaSparkContext(conf);
        SQLContext sqlContext = new SQLContext(sc);
        
        DataFrame df = sqlContext.read().json("people.json");
        
        
        /*
         * 操作DataFrame的第一種方式
         * */
        //類似 SQL的select from table;
        df.show();
        //desc table
        df.printSchema();
        
        //select age from table;
        df.select("age").show();
        //select name from table;
        df.select("name").show();
        //select name,age+10 from table;
        df.select(df.col("name"),df.col("age").plus(10)).show();
        //select * from table where age > 20
        df.filter(df.col("age").gt(20)).show();
    }
}
通過df.show()   df.printSchema()便可以檢視該df中的資訊。