Spark连接各种数据源
一、Spark连接MysqL
import java.util.Properties
import org.apache.spark.sql.SparkSession
object ConnectMysqL {
/**
* spark操作MysqL
* 1、首先将拷贝mysql-connector-java.5.1.38.jar驱动文件到spark的jars目录下
*
*/
def main(args: Array[String]): Unit = {
//创建SparkSession
val spark = SparkSession.builder()
.master("local[4]") //设置master
.appName(this.getClass.getName) // 设置appname
.getorCreate()
// 设置要访问的MysqL的url
val url = "jdbc:MysqL://single:3306/kb10"
// 设置要访问的MysqL的表名
val tableName = "stusub"
// 设置要访问的MysqL的用户名, 密码, 数据库驱动类Driver
val props = new Properties()
props.setProperty("user", "root")
props.setProperty("password", "root")
props.setProperty("driver", "com.MysqL.jdbc.Driver")
// 通过spark.read.jdbc方法读取MysqL中数据
val df = spark.read.jdbc(url, tableName, props)
df.printSchema() //打印schema信息
df.show()
// 将DataFrame数据写入到MysqL中, 追加方式
df.write.mode("append").jdbc(url,tableName,props)
}
}
二、Spark连接Hive
import org.apache.spark.sql.SparkSession
object ConnectHive {
/**
* 使用sparksql操作hive
* Sparksql与Hive集成
* 拷贝hive配置文件内的hive-site.xml至spark的conf 文件夹下
* 同时将hive-site.xml放到idea文件的资源目录下
* 在idea中的hive-site.xml中添加配置:(hive元数据的地址,)9083为默认端口号
* <property>
* <name>hive.metastore.uris</name>
* <value>thrift://single:9083</value>
* </property>
* 这样就可以使用sparksql访问操作hive中的元数据
*/
def main(args: Array[String]): Unit = {
创建SparkSession
val spark = SparkSession.builder()
.master("local[4]") //设置master
.appName(this.getClass.getName) //设置appname
.enableHiveSupport() //添加属性,允许sparksql操作hive
.getorCreate()
// 读取Hive中数据表
val df = spark.sql("select * from shoptest")
df.show()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。