为spark-scala创建jar文件时出错



我将使用IntelliJ IDEA创建我的第一个spark scala jar文件。

我刚尝试导入一个csv文件,但它不起作用。这是我的代码:

import org.apache.spark.{SparkConf, SparkContext}
object jar1 {
def main(args: Array[String]): Unit = {

val sc = new SparkContext(new SparkConf().setAppName("ex1"))
val data = sc.read.option("header","true").option("inferSchema","true").csv(args(0))

data.saveAsTextFile(args(1))
}
}

当我试图使用IntelliJ IDEA将此代码打包以创建一个jar文件时,我得到了以下错误:

[info] Compiling 1 Scala source to C:UsersDownloadsCounttargetscala-2.11classes ...
[error] C:UsersDownloadsCountsrcmainscalajar1.scala:14:24: value read is not a member of org.apache.spark.SparkContext
[error]     val data = sc.read.option("header","true").option("inferSchema","true").csv(args(0))
[error]                        ^
[error] one error found
[error] (Compile / compileIncremental) Compilation failed

这可能是什么原因?

谢谢

好吧,错误消息实际上告诉了你为什么:

CCD_ 2类中没有CCD_ 1方法。

如果您检查APISparkContext提供的所有产品(https://spark.apache.org/docs/2.3.1/api/scala/index.html#org.apache.spark.SparkContext),

在内部找不到read方法。。。

如果使用SparkContext,则可能需要使用textFile方法,

val data = sc.textFile(args(0))

但这对我来说有点奇怪,你似乎在讨论SparkSession语法,我更喜欢SparkSession:

import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("ex1")
.getOrCreate()

在这里你可以阅读你的csv

val data = spark.read.format("csv")
.option("header","true")
.option("inferSchema","true")
.load(args(0))

你可以在这里查看这一点,以及如何在这里阅读csv

编辑

保存结果:

data.write.format("text").save(args(1))

最新更新