<span id="be51944643"></span><address id="bfa2a02799"><style id="bg9530ea94"></style></address><button id="bl9e614835"></button>
                        

          澳门威尼斯娯乐城vn5002,澳门威尼斯娱乐平台,威尼斯娱城网址

          spark sql与mysql 数据加载与导出数据到mysql

          原创 数据分析 作者:hgs19921112 时间:2018-11-08 21:48:05 0 删除 编辑
          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()
            }
          }
          


          来自 “ 澳门威尼斯娯乐城vn5002,澳门威尼斯娱乐平台,威尼斯娱城网址 ” ,链接:/31506529/viewspace-2219303/,如需转载,请注明出处,否则将追究法律责任。

          上一篇: hive的一些问题
          下一篇: 没有了~
          请登录后发表评论 登录
          全部评论

          注册时间:2017-11-22

          • 博文量
            73
          • 访问量
            24293