关于为 spark scala 创建 jar 文件的错误

Error regarding creating a jar file for spark scala

我将使用 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:\Users\Downloads\Count\target\scala-2.11\classes ...
[error] C:\Users\Downloads\Count\src\main\scala\jar1.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

这可能是什么原因?

谢谢

嗯,错误信息实际上告诉你原因:

SparkContext class 中没有 read 方法。

如果您检查所有 API SparkContext 必须提供 (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))

你可以看看这个here and about how to read a csv here

编辑

要保存您的结果:

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