我是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