当前位置:   article > 正文

我的Spark学习笔记(三)—— SparkSQL初体验_学习spark安装和编程实践的心得

学习spark安装和编程实践的心得

对SparkSQL先有一个感性认识。win10下使用了Cmder工具,操作如下:

$ pwd
D:\Temp\SparkSQLTest

$ dir
2019/12/03  16:11    <DIR>          .
2019/12/03  16:11    <DIR>          ..
2019/01/25  20:45           789,885 mysql-connector-java-5.1.18.jar

$ spark-shell --jars mysql-connector-java-5.1.18.jar --driver-class-path mysql-connector-java-5.1.18.jar

略(打开了spark-shell命令行)

scala> val url="jdbc:mysql://localhost:3306/collect-ticket"

scala> val username = "root"

scala> val password = "123456"

scala> import org.apache.spark.rdd.JdbcRDD

scala> import java.sql.{Connection, DriverManager, ResultSet}

scala> Class.forName("com.mysql.jdbc.Driver").newInstance

scala> val myRDD = new JdbcRDD( sc, () =>
     | DriverManager.getConnection(url, username, password) ,
     | "select id, code_name from fin_dict_val where id >= ? AND id <= ? ",
     | 1, 20, 3, r => r.getLong("id") + ", " + r.getString("code_name"))
myRDD: org.apache.spark.rdd.JdbcRDD[String] = JdbcRDD[0] at JdbcRDD at <console>:32

scala> myRDD.foreach(println)
1, xxx(隐藏了公司敏感信息)
7, xxx(隐藏了公司敏感信息)
14, xxx(隐藏了公司敏感信息)
8, xxx(隐藏了公司敏感信息)
2, xxx(隐藏了公司敏感信息)
9, xxx(隐藏了公司敏感信息)
15, xxx(隐藏了公司敏感信息)
16, xxx(隐藏了公司敏感信息)
10, xxx(隐藏了公司敏感信息)
3, xxx(隐藏了公司敏感信息)
11, xxx(隐藏了公司敏感信息)
17, xxx(隐藏了公司敏感信息)
12, xxx(隐藏了公司敏感信息)
4, xxx(隐藏了公司敏感信息)
13, xxx(隐藏了公司敏感信息)
18, xxx(隐藏了公司敏感信息)
5, xxx(隐藏了公司敏感信息)
19, xxx(隐藏了公司敏感信息)
20, xxx(隐藏了公司敏感信息)
6, xxx(隐藏了公司敏感信息)

scala> myRDD.saveAsTextFile("folder_01")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

在当前目录下,生成了folder_01文件夹,里面有三个输出的数据文件:part-00000、part-00001、part-00002。

1, xxx(隐藏了公司敏感信息)
2, xxx(隐藏了公司敏感信息)
3, xxx(隐藏了公司敏感信息)
4, xxx(隐藏了公司敏感信息)
5, xxx(隐藏了公司敏感信息)
6, xxx(隐藏了公司敏感信息)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
7, xxx(隐藏了公司敏感信息)
8, xxx(隐藏了公司敏感信息)
9, xxx(隐藏了公司敏感信息)
10, xxx(隐藏了公司敏感信息)
11, xxx(隐藏了公司敏感信息)
12, xxx(隐藏了公司敏感信息)
13, xxx(隐藏了公司敏感信息)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
14, xxx(隐藏了公司敏感信息)
15, xxx(隐藏了公司敏感信息)
16, xxx(隐藏了公司敏感信息)
17, xxx(隐藏了公司敏感信息)
18, xxx(隐藏了公司敏感信息)
19, xxx(隐藏了公司敏感信息)
20, xxx(隐藏了公司敏感信息)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

API:

class JdbcRDD[T](
sc : org.apache.spark.SparkContext,
getConnection : scala.Function0[java.sql.Connection],
sql : scala.Predef.String,
lowerBound : scala.Long,
upperBound : scala.Long,
numPartitions : scala.Int,
mapRow : scala.Function1[java.sql.ResultSet, T] = { /* compiled code */ }
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

体会下上述交互式窗口里输入的“1, 20, 3”:

  • 1对应lowerBound
  • 20对应upperBound
  • 3对应numPartitions

可以将20改为30或40再次执行下,将3改为4或5再次执行下。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/589185
推荐阅读
相关标签
  

闽ICP备14008679号