spark读取mysql
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了spark读取mysql,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2008字,纯文字阅读大概需要3分钟。
内容图文
java.sql.DriverManager
import java.time.{LocalDateTime, ZoneOffset}
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkConf, SparkContext}
// spark-submit --master local[*] --jars /root/sparkjob/mysql-connector-java-5.1.38.jar --class com.zxb.sparkapplication.readwrite.SparkReadMysql /root/sparkjob/original-scalatest-1.0-SNAPSHOT.jar
/**
* spark读取mysql数据
*/
object SparkReadMysql {
def main(args: Array[String]): Unit =
{
val conf =
new SparkConf().setMaster("local").setAppName("spark write mysql"
)
val sc =
new SparkContext(conf)
// 连接mysql相关配置信息
val driverClassName = "com.mysql.jdbc.Driver"
val url = "jdbc:mysql://ip:3306/xunwu?characterEncoding=utf8&useSSL=false"
val user = "root"
val password = "123456"
//mysql里时间类型为datetime,传入的条件为时间戳
val sql = "select id,title,price,area from house where create_time > from_unixtime(?) and create_time < from_unixtime(?)"
val connection = () =>
{
Class.forName(driverClassName)
DriverManager.getConnection(url, user, password)
}
val startTime = LocalDateTime.of(2017, 1, 3, 0, 0, 0
)
val endTime = LocalDateTime.of(2019, 11, 4, 0, 0
)
//mysql的时间戳只有10位,需要把java里的13位时间戳降低精度,直接除以1000
val startTimeStamp = startTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli / 1000
val endTimeStamp = endTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli / 1000
println("startTime: " + startTime + ", endTime: " +
endTime)
println("startTime: " + startTimeStamp + ", endTime: " +
endTimeStamp)
//读取
val result: JdbcRDD[(Int, String, Int, Int)] =
new JdbcRDD[(Int, String, Int, Int)](
sc,
connection,
sql,
startTimeStamp,
endTimeStamp,
1
,
rs =>
{
val id = rs.getInt(1
)
val title = rs.getString(2
)
val price = rs.getInt(3
)
val area = rs.getInt(4
)
(id,title,price,area)
}
)
result.collect().foreach(println)
sc.stop()
}
}
spark读取mysql
标签:code tar nap ndt com each poc pass als
本文系统来源:https://www.cnblogs.com/zxbdboke/p/12749537.html
内容总结
以上是互联网集市为您收集整理的spark读取mysql全部内容,希望文章能够帮你解决spark读取mysql所遇到的程序开发问题。
如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
来源:【匿名】