gpt4 book ai didi

scala - Spark Shell 导入正常,但在引用类时抛出错误

转载 作者:可可西里 更新时间:2023-11-01 14:52:02 24 4
gpt4 key购买 nike

我是 Apache Spark 的初学者,所以如果这很微不足道,请原谅。

基本上,我在 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.apa‌​che.hadoop.io.NullWritable;
...

val rdd = sc.hadoopFile(path,
classOf[org.apache.hadoop.hive.ql.io.orc.OrcInputFor‌​mat],
classOf[NullWritable],
classOf[OrcStruct],
1)

OrcInputFormat 之前的导入语句工作正常,除了:

错误:对象 apa‌ che 不是包 org 的成员
import org.apa‌ che.hadoop.io.NullWritable;

如果之前的导入语句没有任何问题,那是没有意义的。

此外,在引用 OrcInputFormat 时,我被告知:

错误:类型 OrcInputFor‌ mat 不是包 org.apache.hadoop.hive.ql.io.orc 的成员

import for OrcInputFormat 起作用似乎很奇怪(我假设它起作用,因为没有抛出错误),但随后出现上述错误消息。基本上,我正在尝试从 S3 读取 ORC 文件。

我也在查看我做错了什么,以及为什么会这样。

我做了什么:

  1. 我尝试使用 --jars 选项运行 spark-shell,并尝试导入 hadoop-common-2.6.0.jar (我现在的Spark版本是1.6.1,用Hadoop 2.6编译)
  2. val df = sqlContext.read.format("orc").load(PathToS3),如 ( Read ORC files directly from Spark shell ) 所引用。我尝试过 S3、S3n、S3a 的变体,但没有成功。

最佳答案

在上次导入时,org.apeche 之间有 2 个非打印字符,很可能是由于复制粘贴造成的:

import org.apa‌​che.hadoop.io.NullWritable;

只需重写最后的导入语句即可。你也不需要这些分号。

你对 OrcInputFormat 有同样的问题:

error: type OrcInputFor‌​mat is not member of package org.apache.hadoop.hive.ql.io.orc

这很有趣,在移动版的 Stackoverflow 中我们可以清楚地看到那些非打印字符:

enter image description here

关于scala - Spark Shell 导入正常,但在引用类时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39967381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com