【发布时间】:2017-05-08 07:32:50
【问题描述】:
现在我正在使用 sqoop 将数据写入 rdbms。所以它将数据存储到hdfs,然后到rdbms。有没有办法将rdd直接存储到Hive?
【问题讨论】:
标签: apache-spark hive
现在我正在使用 sqoop 将数据写入 rdbms。所以它将数据存储到hdfs,然后到rdbms。有没有办法将rdd直接存储到Hive?
【问题讨论】:
标签: apache-spark hive
是的,您可以将RDD 写入hive,将RDD 写入hive 的一种方法是将RDD 转换为Df,然后将saveTableAs() 如下所示
import org.apache.spark.sql.hive.HiveContext
val hiveContext = new HiveContext(sc)
import hiveContext.implicits._
//read data perform some transformation
val myDF = myRdd.toDF("column names")
然后你可以创建一个表并转储数据
myDF.write.saveAsTable("tableName")
//with save mode
myDF.write().mode(SaveMode.Overwrite).saveAsTable("tableName")
您可以像上面一样添加保存模式 SaveMode 是 Append、Ignore、Overwrite、ErrorIfExists
【讨论】: