Scala 以ORC格式保存spark rdd
我正在尝试以orc格式保存我的RDDScala 以ORC格式保存spark rdd,scala,apache-spark,parquet,orc,Scala,Apache Spark,Parquet,Orc,我正在尝试以orc格式保存我的RDD val data: RDD[MyObject] = createMyData() val sqlContext = new SQLContext(sc) import sqlContext.implicits._ data.toDF.write.format("orc").save(outputPath) 它编译得很好,但不起作用。 我得到以下例外: ERROR ApplicationMaster: User class threw ex
val data: RDD[MyObject] = createMyData()
val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
data.toDF.write.format("orc").save(outputPath)
它编译得很好,但不起作用。
我得到以下例外:
ERROR ApplicationMaster: User class threw exception: java.lang.AssertionError: assertion failed: The ORC data source can only be used with HiveContext.
java.lang.AssertionError: assertion failed: The ORC data source can only be used with HiveContext.
我希望避免使用配置单元来执行此操作,因为我的数据位于hdfs中,并且与任何配置单元表都不相关。有什么解决办法吗?
它适用于拼花地板格式。
提前感谢。在持久存储区域(如HDFS)中持久化ORC格式仅适用于HiveContext 作为替代(解决方法),您可以将其注册为临时表。大概是这样的:-
DataFrame.write.mode("overwrite").orc("myDF.orc")
val orcDF = sqlCtx.read.orc("myDF.orc")
orcDF.registerTempTable("<Table Name>")
DataFrame.write.mode(“覆盖”).orc(“myDF.orc”)
val orcDF=sqlCtx.read.orc(“myDF.orc”)
orcDF.RegisterEmptable(“”)
目前,只能使用HiveContext保存为orc
因此,方法如下:
import sqlContext.implicits._
val data: RDD[MyObject] = createMyData()
val sqlContext = new New Org.Apache.Spark.Sql.Hive.HiveContext(Sc)
data.toDF.write.format("orc").save(outputPath)
是的,我知道这个解决方法,但正如我说的,我真的不想使用HiveContext。无论如何thanks@homar没有HiveContext是无法完成的