【发布时间】:2015-08-27 20:08:47
【问题描述】:
我在直接从 Spark shell 读取 ORC 文件时遇到问题。注意:运行 Hadoop 1.2 和 Spark 1.2,使用 pyspark shell,可以使用 spark-shell(运行 scala)。
from pyspark.sql import HiveContext
hiveCtx = HiveContext(sc)
inputRead = sc.hadoopFile("hdfs://user@server:/file_path",
classOf[inputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat],
classOf[outputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat])
我收到一个错误,通常说语法错误。有一次,代码似乎可以工作,我只使用了传递给 hadoopFile 的三个参数中的第一个,但是当我尝试使用时
inputRead.first()
输出是 RDD[nothing, nothing]。我不知道这是因为 inputRead 变量没有被创建为 RDD 还是根本没有创建。
感谢您的帮助!
【问题讨论】:
-
嗨,我是 python 新手,但在 scala 中,读取 ORC 文件的符号如下: sc.hadoopFile(ORC_FILE_PATH,classOf[org.apache.hadoop.hive.ql.io .orc.OrcInputFormat],classOf[org.apache.hadoop.io.NullWritable],classOf[org.apache.hadoop.hive.ql.io.orc.OrcStruct]) ;尝试在python中添加4个这样的参数
-
Spark 1.4 新支持的 ORC 文件。因此,您可以使用 spark 的最新版本
-
谢谢!我通过 HiveContext 将存储为 ORC 的 Hive 表读入并使用 dataFrame 并对其进行查询。 @kaushal 我认为有一个 jira,不一定集成在 Spark 1.4 中(不完全确定)
标签: scala hadoop apache-spark hive pyspark