scala 通过 sql 读取数据的3种方法

张映 发表于 2019-01-15

分类目录: hadoop/spark/scala

标签:, ,

通过sql的方式,读取数据,根我们常用的关系型数据库差不多,更容易上手,当然没有updata和delete。

1,启动spark-shell

  1. # spark-shell --master yarn  
  2. Setting default log level to "WARN".  
  3. To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).  
  4. Spark context Web UI available at http://bigserver1:4040  
  5. Spark context available as 'sc' (master = yarn, app id = application_1547025808071_0015). //sc  
  6. Spark session available as 'spark'//spark  
  7. Welcome to  
  8.  ____ __  
  9.  / __/__ ___ _____/ /__  
  10.  _\ \/ _ \/ _ `/ __/ '_/  
  11.  /___/ .__/\_,_/_/ /_/\_\ version 2.4.0  
  12.  /_/  
  13.   
  14. Using Scala version 2.11.12 (OpenJDK 64-Bit Server VM, Java 1.8.0_191)  
  15. Type in expressions to have them evaluated.  
  16. Type :help for more information.  

2,方法一

  1. scala> val sqlDF = spark.sql("SELECT * FROM tanktest.test");  
  2. sqlDF: org.apache.spark.sql.DataFrame = [id: int, name: string]  
  3.   
  4. scala> sqlDF.show();  
  5. +---+---------+  
  6. | id| name|  
  7. +---+---------+  
  8. | 1| tank|  
  9. | 2| zhang|  
  10. | 3| ying|  
  11. | 5|tanktest1|  
  12. | 6|tanktest2|  
  13. | 4| tanktest|  
  14. | 7| denggei|  
  15. +---+---------+  

3,方法2

  1. scala> val test = spark.sqlContext.sql("SELECT * FROM tanktest.test");  
  2. test: org.apache.spark.sql.DataFrame = [id: int, name: string]  
  3.   
  4. scala> test.show();  
  5. +---+---------+  
  6. | id| name|  
  7. +---+---------+  
  8. | 1| tank|  
  9. | 2| zhang|  
  10. | 3| ying|  
  11. | 5|tanktest1|  
  12. | 6|tanktest2|  
  13. | 4| tanktest|  
  14. | 7| denggei|  

4,方法3

  1. scala> import org.apache.spark.sql.SQLContext  
  2. import org.apache.spark.sql.SQLContext  
  3.   
  4. scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)  
  5. warning: there was one deprecation warning; re-run with -deprecation for details  
  6. sqlContext: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@4ac73165  
  7.   
  8. scala> val df = sqlContext.sql("SELECT * FROM tanktest.test")  
  9. df: org.apache.spark.sql.DataFrame = [id: int, name: string]  
  10.   
  11. scala> df.show();  
  12. +---+---------+  
  13. | id| name|  
  14. +---+---------+  
  15. | 1| tank|  
  16. | 2| zhang|  
  17. | 3| ying|  
  18. | 5|tanktest1|  
  19. | 6|tanktest2|  
  20. | 4| tanktest|  
  21. | 7| denggei|  
  22. +---+---------+  


转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/hadoop/2043.html