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として作成されなかったためか、まったく作成されなかったためかはわかりません。
助けてくれてありがとう!
Spark 1.5では、次のようにORCファイルをロードできます。
val orcfile = "hdfs:///ORC_FILE_PATH"
val df = sqlContext.read.format("orc").load(orcfile)
df.show
あなたはこのコードを試すことができます、それは私のために働いています。
val LoadOrc = spark.read.option("inferSchema", true).orc("filepath")
LoadOrc.show()
読み込む複数のパスを追加することもできます
val df = sqlContext.read.format("orc").load("hdfs://localhost:8020/user/aks/input1/*","hdfs://localhost:8020/aks/input2/*/part-r-*.orc")