1

我很好地在 Azure 数据块上运行 Scala 代码。现在我想将此代码从 Azure 笔记本移动到 Eclipse。

  1. 我按照 Microsoft 文档成功安装了 databricks 连接。通过databricks数据连接测试。
  2. 我还在 Eclipse 中安装了 SBT 并导入到我的项目中
  3. 我在 eclipse 中创建 scala 对象,并将所有 jar 文件作为外部文件导入 pyspark

package Student

import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.SparkSession
import java.util.Properties
//import com.databricks.dbutils_v1.DBUtilsHolder.dbutils

object Test {
  
  def isTypeSame(df: DataFrame, name: String, coltype: String) = (df.schema(name).dataType.toString == coltype)
  def main(args: Array[String]){
    var Result = true
    val Borrowers = List(("col1", "StringType"),("col2", "StringType"),("col3", "DecimalType(38,18)"))
    val dfPcllcus22 = spark.read.format("parquet").load("/mnt/slraw/ServiceCenter=*******.parquet")
    
    if (Result == false) println("Test Fail, Please check") else println("Test Pass")  
  }
}

当我在 Eclipse 中运行此代码时,它显示找不到主类。但是,如果我评论“ val dfPcllcus22 = spark.read.format("parquet").load("/mnt/slraw/ServiceCenter=*******.parquet")”,则通过测试。所以似乎 spark.read.format 无法识别。

我是 Scala 和 DataBricks 的新手。我研究了几天的结果,但仍然无法解决。如果有人可以提供帮助,真的很感激。环境对我来说有点复杂,如果需要更多信息,请告诉我

4

1 回答 1

0

SparkSession 需要在 Eclipse 中运行您的代码,因为您提供的代码没有用于创建 SparkSession 的这一行会导致错误,

val spark = SparkSession.builder.appName("SparkDBFSParquet").master("local[*]".getOrCreate()

请添加此行并运行代码,它应该可以工作。

于 2020-07-20T14:05:04.123 回答