3、SqlContext读取mysql数据,产生一个Dataframe
2016-11-29 00:00
127 查看
#Spark 不仅可以从HDFS中读取数据,也可以从mysql等关系数据库中读取数据。
//通过sqlContext读取mysql中指定表的数据。
val jdbcDF = sqlContext.read.format("jdbc").options(
Map("url" -> "jdbc:mysql://localhost:3306/bigdata", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "emp", "user" -> "root", "password" -> "815325")
).load()
#完整代码:
package com.liufu.org.sql
#总结:把数据加载到DataFrame之后,可以将它注册成一张表,这样就可以利用sqlContext运行SQL语句,对表信息进行各种操作,操作完成后还可以写回到Mysql中
//通过sqlContext读取mysql中指定表的数据。
val jdbcDF = sqlContext.read.format("jdbc").options(
Map("url" -> "jdbc:mysql://localhost:3306/bigdata", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "emp", "user" -> "root", "password" -> "815325")
).load()
#完整代码:
package com.liufu.org.sql
import java.util.Properties import org.apache.spark.sql.{DataFrame, SQLContext} import org.apache.spark.{SparkConf, SparkContext} /** * Created by liufu on 2016/11/18. */ object SparkSqlContext { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf().setAppName("dataframTest").setMaster("local[2]") val sc: SparkContext = new SparkContext(conf) val sqlContext = new SQLContext(sc) //通过sqlContext读取mysql中指定表的数据。 val jdbcDF = sqlContext.read.format("jdbc").options( Map("url" -> "jdbc:mysql://localhost:3306/bigdata", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "emp", "user" -> "root", "password" -> "815325") ).load() //将JdbcDF注册成内存中的表,然后通过sqlContext运行SQL语句来进行操作。 //这样数据就像是从HDFS读取出来之后,结合case class样例类形成的内存表一样了。 jdbcDF.registerTempTable("emp") val resultDF: DataFrame = sqlContext.sql("select eno,ename from emp where eno >= 7900") resultDF.show() /** * 这里可以对DF进行各种操作之后,最后写入到HDFS或者写回Mysql */ //创建Properties存储数据库相关属性 val prop = new Properties() prop.put("user", "root") prop.put("password", "815325") //如果数据库中没有这个表,那么他也会创建一张表(很强大) resultDF.write.mode("append").jdbc("jdbc:mysql://localhost:3306/bigdata","result",prop) sc.stop() } }
#总结:把数据加载到DataFrame之后,可以将它注册成一张表,这样就可以利用sqlContext运行SQL语句,对表信息进行各种操作,操作完成后还可以写回到Mysql中
相关文章推荐
- System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
- 当获取相似数据时,使用不同方法调用不同sp,但是使用同一个方法去用IIDataReader或者SqlDataReader读取数据时需要判断column name是否存在。
- System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
- 步步为营VS 2008 + .NET 3.5(13) - DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载
- 一个抽象工厂数据访问模块(a data access component using abstract factory pattern SQL/OLEDB/ODBC)
- DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载
- 读取MYSQL中文数据乱码,解决data too long for column 'title' at row 1
- SqlDataReader读取数据
- 从Mysql某一表中随机读取n条数据的SQL查询语句
- Lesson 04: Reading Data with the SqlDataReader(使用SqlDataReader读取数据)
- DataContext数据在F5刷新频繁时,出现数据读取错误(MVC LINQ)
- SqlDataReader And SqlCommand读取数据
- SqlDataReader读取数据
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- SqlDataReader 与 DataSet读取sql中的数据
- 步步为营VS 2008 + .NET 3.5(13) - DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载
- JScript.Net 之 SqlDataReader读取数据
- 步步为营VS 2008 + .NET 3.5(13) - DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载
- sql Server 批量插入以及sql Server数据导入到mysql sqlServer数据每10000条导出一个文件
- 使用 SqlDataReader 读取数据示例