sparkrdd转dataframe的两种方式
2016-08-31 10:48
267 查看
package l847164916 import java.sql.{DriverManager, ResultSet} import java.util.Properties import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{Row, SQLContext, SaveMode} import org.apache.spark.sql.hive.HiveContext import org.apache.spark.sql.types._ /** * Created by Administrator on 2016/9/2. */ object Test { def main(args: Array[String]): Unit = { val url = "jdbc:mysql://xxxxxxx:3306/hyn_profile" val prop = new Properties() prop.setProperty("user", "root") prop.setProperty("password", "xxxxx") prop.setProperty("driver","com.mysql.jdbc.Driver") val conf = new SparkConf().setAppName("test").setMaster("local") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) val schema = StructType( StructField("name",StringType) :: StructField("rate1",DoubleType) :: StructField("rate2",DoubleType) :: Nil ) val rdd1 = sc.textFile("D:/LCH/hellomoto/data").map{r => r.split(" ")}.map{r => (r(0),r(1))} val rdd2 = sc.textFile("D:/LCH/hellomoto/data1").map{r => r.split(" ")}.map{r => (r(0),r(1))} //1.外连接才会产生option类型 //2.getOrElse()设置join后空值的默认值,注意类型要与schema匹配 val rdd = rdd1.fullOuterJoin(rdd2).map{case ((name,(rate1,rate2)))=>(name,rate1,rate2)}.map(r=> Row.apply(r._1,r._2.getOrElse(0.0).toString.toDouble,r._3.getOrElse(0.0).toString.toDouble)) val df = sqlContext.createDataFrame(rdd,schema) df.write.mode(SaveMode.Overwrite).jdbc(url,"test",prop) /* (二)隐式转换DF: import sqlContext.implicits._ val df = rdd1.fullOuterJoin(rdd2).map{case ((name,(rate1,rate2)))=>(name,rate1,rate2)}.toDF("name","rate1","rate2") df.write.mode(SaveMode.Overwrite).jdbc(url,"test",prop) */ } }
相关文章推荐
- Spark中RDD转换成DataFrame的两种方式(分别用Java和scala实现)
- Spark 读写 HBase 的两种方式(RDD、DataFrame)
- Spark中RDD转换成DataFrame的两种方式(分别用Java和scala实现)
- Spark将RDD转换成DataFrame的两种方式
- spark rdd转dataframe的两种方式
- Spark将RDD转换成DataFrame的两种方式
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- Java接入Spark之创建RDD的两种方式和操作RDD
- Spark RDD/DataFrame map保存数据的两种方式
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- SparkSQL 之 RDD转为DataSet的两种方式
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- 3.Spark SQL:使用反射方式、编程方式,将RDD转换为DataFrame
- RDD转换DataFrame的两种方式的比较