溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark SQL怎么用

發布時間:2022-01-14 17:20:26 來源:億速云 閱讀:171 作者:iii 欄目:開發技術

這篇文章主要介紹“Spark SQL怎么用”,在日常操作中,相信很多人在Spark SQL怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spark SQL怎么用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

pom.xml
<dependencies>

  1.     <dependency>

  2.         <groupId>org.apache.spark</groupId>

  3.         <artifactId>spark-core_2.10</artifactId>

  4.         <version>2.1.0</version>

  5.     </dependency>

  6.     <dependency>

  7.         <groupId>org.apache.spark</groupId>

  8.         <artifactId>spark-sql_2.10</artifactId>

  9.         <version>2.1.0</version>

  10.     </dependency>

  11. </dependencies>

Java:

  1. import java.io.Serializable;

  2. import java.util.Arrays;


  3. import org.apache.spark.SparkConf;

  4. import org.apache.spark.api.java.JavaRDD;

  5. import org.apache.spark.api.java.JavaSparkContext;

  6. import org.apache.spark.sql.Dataset;

  7. import org.apache.spark.sql.Row;

  8. import org.apache.spark.sql.SQLContext;

  9. import org.apache.spark.sql.SparkSession;


  10. public class SparkSqlTest {

  11.     public static class Person implements Serializable {

  12.         private static final long serialVersionUID = -6259413972682177507L;

  13.         private String name;

  14.         private int age;

  15.         

  16.         public Person(String name, int age) {

  17.             this.name = name;

  18.             this.age = age;

  19.         }

  20.         public String toString() {

  21.             return name + ": " + age;

  22.         }

  23.         public String getName() {

  24.             return name;

  25.         }

  26.         public void setName(String name) {

  27.             this.name = name;

  28.         }

  29.         public int getAge() {

  30.             return age;

  31.         }

  32.         public void setAge(int age) {

  33.             this.age = age;

  34.         }

  35.     }

  36.     

  37.     public static void main(String[] args) {

  38.         SparkConf conf = new SparkConf().setAppName("Test").setMaster("local");

  39.         JavaSparkContext sc = new JavaSparkContext(conf);

  40.         

  41.         SparkSession spark = SparkSession.builder().appName("Test").getOrCreate();

  42.         JavaRDD<String> input = sc.parallelize(Arrays.asList("abc,1", "test,2"));

  43.         JavaRDD<Person> persons = input.map(s -> s.split(",")).map(s -> new Person(s[0], Integer.parseInt(s[1])));

  44.         

  45.         //[abc: 1, test: 2]

  46.         System.out.println(persons.collect());

  47.         

  48.         Dataset<Row> df = spark.createDataFrame(persons, Person.class);

  49.         

  50.         /*

  51.         +---+----+

  52.         |age|name|

  53.         +---+----+

  54.         |  1| abc|

  55.         |  2|test|

  56.         +---+----+

  57.          */

  58.         df.show();

  59.         

  60.         /*

  61.          root

  62.            |-- age: integer (nullable = false)

  63.            |-- name: string (nullable = true)

  64.          */

  65.         df.printSchema();


  66.         SQLContext sql = new SQLContext(spark);

  67.         sql.registerDataFrameAsTable(df, "person");

  68.         

  69.         /*

  70.         +---+----+

  71.         |age|name|

  72.         +---+----+

  73.         |  2|test|

  74.         +---+----+

  75.          */

  76.         sql.sql("SELECT * FROM person WHERE age>1").show();

  77.         

  78.         sc.close();

  79.     }


  80. }

到此,關于“Spark SQL怎么用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女