我是Apache Spark中的初學者,所以請原諒,如果這很簡單。Spark Shell導入正常,但在引用類時引發錯誤
基本上,我是跑在spark-shell
以下導入:
import org.apache.spark.sql.{DataFrame, Row, SQLContext, DataFrameReader}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql._
import org.apache.hadoop.hive.ql.io.orc.{OrcInputFormat,OrcStruct};
import org.apache.hadoop.io.NullWritable;
...
val rdd = sc.hadoopFile(path,
classOf[org.apache.hadoop.hive.ql.io.orc.OrcInputFormat],
classOf[NullWritable],
classOf[OrcStruct],
1)
import語句截至OrcInputFormat正常工作,不同之處在於:
error: object apache is not a member of package org import org.apache.hadoop.io.NullWritable;
這沒有意義,如果之前的導入聲明沒有發生任何問題。
此外,引用OrcInputFormat
的時候,有人告訴我:
error: type OrcInputFormat is not a member of package org.apache.hadoop.hive.ql.io.orc
看來奇怪的是,進口爲OrcInputFormat
工作(我假設它的作品,因爲不會引發錯誤),但隨後上述錯誤消息出現。基本上,我正在嘗試從S3讀取ORC文件。
我也在看我做錯了什麼,以及爲什麼發生這種情況。
我做了什麼:
- 我曾試圖與
--jars
選項運行spark-shell
,並試圖導入hadoop-common-2.6.0.jar
(我現在的星火版本是1.6.1,用Hadoop 2.6編譯) - (Read ORC files directly from Spark shell)引用的
val df = sqlContext.read.format("orc").load(PathToS3)
。我嘗試過S3,S3n,S3a的變種,沒有任何成功。
謝謝!這是一個相當偷偷摸摸的...雖然這似乎並沒有解決'錯誤:類型OrcInputFor mat不是包org.apache.hadoop.hive.ql.io.orc'的成員,不幸... – Stanley
請參閱我的更新,相同的問題和解決方案!請接受/投票我的答案,如果它幫助你,謝謝 – cheseaux