直接从Spark shell

时间:2015-06-11 22:27:24

标签: scala hadoop apache-spark hive pyspark

我在从Spark shell直接读取ORC文件时遇到问题。注意:使用pyspark shell运行Hadoop 1.2和Spark 1.2可以使用spark-shell(运行scala)。

我已使用此资源http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.2.4/Apache_Spark_Quickstart_v224/content/ch_orc-spark-quickstart.html

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,或者根本没有创建它。

我感谢任何帮助!

3 个答案:

答案 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")