现在我正在使用sqoop将数据写入rdbms。所以它将数据存储到hdfs然后存储到rdbms。有没有办法直接将rdd存储到Hive?
答案 0 :(得分:1)
是的,您可以将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")
您可以按上述方式添加保存模式 SaveModes 追加,忽略,覆盖,ErrorIfExists