如何修复spark.read.format(“ parquet”)错误

时间:2020-07-17 19:25:25

标签: eclipse scala sbt databricks-connect

我在Azure数据块上很好地运行了Scala代码。现在,我要将这段代码从Azure笔记本移动到Eclipse。

  1. 我成功安装了跟随Microsoft文档的databricks连接。通过databricks数据连接测试。
  2. 我还安装了SBT并在Eclipse中导入到我的项目中
  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的新手。 我正在研究结果几天,但仍然无法解决。 如果有人可以帮助,请多多关照。 环境对我来说有点复杂,如果需要更多信息,请告诉我

1 个答案:

答案 0 :(得分:0)

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

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

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