spark sql與mysql 資料載入與匯出資料到mysql
package hgs.spark.sql import org.apache.spark.SparkConf import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.sql.SQLContext import org.apache.spark.sql.SQLImplicits import org.apache.spark.sql.types.StructType import org.apache.spark.sql.types.StructField import org.apache.spark.sql.types.StringType import org.apache.spark.sql.types.IntegerType import org.apache.spark.sql.Row import java.util.Properties //第一種方法建立dataframe object SqlTest1 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("sqltest1").setMaster("local") val context = new SparkContext(conf) val sqlContext = new SQLContext(context) val rdd = context.textFile("d:\\person",1) val rdd2 = rdd.map(x=>{val t = x.split(" ");person(t(0).toInt,t(1),t(2).toInt)}) val rdd3 = rdd.map(x=>{val t = x.split(" ");person(t(0).toInt,t(1),t(2).toInt)}) //第一種方法建立dataframe,在這裡需要匯入隱式轉換 import sqlContext.implicits._ val persondf = rdd2.toDF() val persondf3 = rdd3.toDF() //這個方法在2.1.0裡面被廢除 //persondf.registerTempTable("person") //使用該函式代替 persondf.createOrReplaceTempView("person") persondf3.createOrReplaceTempView("person2") val result = sqlContext.sql("select a.id ,b.name from person a ,person2 b where a.id = b.id") //列印查詢的結果 result.show() //或者將結果儲存到檔案 //result.write.json("d://personselect") val props = new Properties(); props.put("user", "root") props.put("password", "123456") result.write.mode("append").jdbc("jdbc:mysql://192.168.6.133:3306/hgs", "person", props) //result.write.mode(saveMode) context.stop() } } case class person(id:Int,name:String,age:Int) object sqlTest3{ def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("sqltest3").setMaster("local") val context = new SparkContext(conf) val sqlContext = new SQLContext(context) val persontable = sqlContext.read.format("jdbc").option("url", "jdbc:mysql://192.168.6.133:3306/hgs") .option("dbtable", "person") .option("user", "root") .option("password", "123456").load().createOrReplaceTempView("person") sqlContext.sql("select id,concat(name,\"xxx\") from person").show() context.stop() } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2219303/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer匯出匯入資料到MySQLServerMySql
- Mysql 資料庫匯入與匯出MySql資料庫
- 【MySQL】白話說MySQL(五),資料的匯出與匯入MySql
- sqoop用法之mysql與hive資料匯入匯出OOPMySqlHive
- Python批量匯入Excel資料到MySQLPythonExcelMySql
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- MySQL入門--匯出和匯入資料MySql
- 使用Spark載入資料到SQL Server列儲存表SparkSQLServer
- mysql匯出資料MySql
- 利用跳板機連線mysql,匯出資料到csvMySql
- Mysql資料庫使用Navicat Mysql匯入sql檔案報錯MySql資料庫
- Mongodb資料的匯出與匯入MongoDB
- MySQL 資料庫與 SQL 優化MySql資料庫優化
- MySQL資料的匯出MySql
- MySQL資料的匯入MySql
- Navicat、into outfile、mysql命令、mysqldump、mysqlpump、mydumper匯出匯入資料MySql
- MYSQL資料匯出備份、匯入的幾種方式MySql
- MongoDB--Mongodb 中資料匯出與匯入MongoDB
- SQL資料庫的匯入和匯出SQL資料庫
- Mysql匯入&匯出MySql
- MySQL匯出資料庫指令碼MySql資料庫指令碼
- Windows 下 MySQL 資料匯入 RedisWindowsMySqlRedis
- MySQL匯入百萬資料實踐MySql
- Linux雲伺服器手動匯入匯出mysql資料庫Linux伺服器MySql資料庫
- Spark讀取MySQL資料SparkMySql
- OracleDatabase——資料庫表空間dmp匯出與匯入OracleDatabase資料庫
- MySQL匯出資料為csv的方法MySql
- MySQL Shell import_table資料匯入MySqlImport
- 用Navicat把SQLServer資料匯入MySQLServerMySql
- MySQL load xml載入資料MySqlXML
- MySQL load data載入資料MySql
- 使用navicat匯出查詢大量資料結果集並匯入到其他資料庫(mysql)資料庫MySql
- MYSQL資料庫匯入資料時出現亂碼的解決辦法MySql資料庫
- MySQL 匯出資料為csv格式的方法MySql
- flinkcdc同步mysql資料到selectdbMySql
- Sqoop將MySQL資料匯入到hive中OOPMySqlHive
- Sqoop匯出ClickHouse資料到HiveOOPHive
- mysql資料庫匯入sql檔案一直提示不成功MySql資料庫