web-dev-qa-db-ja.com

Sparkシェルから直接ORCファイルを読み取る

Sparkシェルから直接ORCファイルを読み取る際に問題が発生します。注:Hadoop 1.2を実行し、Spark 1.2は、pysparkシェルを使用して、spark-シェル(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に渡された3つの引数のうちの1つだけを使用しましたが、

inputRead.first()

出力はRDD [なし、なし]でした。これがinputRead変数がRDDとして作成されなかったためか、まったく作成されなかったためかはわかりません。

助けてくれてありがとう!

9
mslick3

Spark 1.5では、次のようにORCファイルをロードできます。

val orcfile = "hdfs:///ORC_FILE_PATH"
val df = sqlContext.read.format("orc").load(orcfile)
df.show
9
Sudheer Palyam

あなたはこのコードを試すことができます、それは私のために働いています。

val LoadOrc = spark.read.option("inferSchema", true).orc("filepath")
LoadOrc.show()
3
Suman M

読み込む複数のパスを追加することもできます

val df = sqlContext.read.format("orc").load("hdfs://localhost:8020/user/aks/input1/*","hdfs://localhost:8020/aks/input2/*/part-r-*.orc")
1
UserszrKs