【问题标题】:How to fix spark.read.format("parquet") error如何修复 spark.read.format("parquet") 错误
【发布时间】:2020-11-07 15:36:21
【问题描述】:

我很好地在 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 的新手。 我研究了几天的结果,但仍然无法解决。 如果有人可以提供帮助,真的很感激。 环境对我来说有点复杂,如果需要更多信息,请告诉我

【问题讨论】:

  • 你能分享你完整的 build.sbt 文件和完整的代码吗?因为您提供的代码没有用于创建 spakSession 的这一行 val spark = SparkSession .builder .appName("SparkDBFSParquet") .master("local[*]") .getOrCreate()
  • 请提供您正在使用的databricks版本,以便我了解要使用的spark版本。
  • 你是天才。我错过了创建 spakSession 的那一行。当我在 Azure Notebook 上运行代码时,我不需要指定它。非常感谢
  • 当然,添加这个作为答案。

标签: eclipse scala sbt databricks-connect


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2016-11-17
    • 2011-07-24
    • 2021-05-10
    • 2017-07-17
    • 2013-03-05
    • 2016-09-10
    相关资源
    最近更新 更多