Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 以ORC格式保存spark rdd_Scala_Apache Spark_Parquet_Orc - Fatal编程技术网

Scala 以ORC格式保存spark rdd

Scala 以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

我正在尝试以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 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是无法完成的