我在从Spark shell直接读取ORC文件时遇到问题。注意:使用pyspark shell运行Hadoop 1.2和Spark 1.2可以使用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 [什么都没有]。我不知道这是不是因为inputRead变量没有被创建为RDD,或者根本没有创建它。
我感谢任何帮助!
答案 0 :(得分:7)
在Spark 1.5中,我可以将我的ORC文件加载为:
val orcfile = "hdfs:///ORC_FILE_PATH"
val df = sqlContext.read.format("orc").load(orcfile)
df.show
答案 1 :(得分:3)
您可以尝试使用此代码,它对我有用。
val LoadOrc = spark.read.option("inferSchema", true).orc("filepath")
LoadOrc.show()
答案 2 :(得分:1)
您还可以添加多个路径以从
中读取val df = sqlContext.read.format("orc").load("hdfs://localhost:8020/user/aks/input1/*","hdfs://localhost:8020/aks/input2/*/part-r-*.orc")