【发布时间】:2020-11-07 15:36:21
【问题描述】:
我很好地在 Azure 数据块上运行 Scala 代码。现在我想将此代码从 Azure 笔记本移动到 Eclipse。
- 我按照 Microsoft 文档成功安装了 databricks 连接。通过 databricks 数据连接测试。
- 我还在 eclipse 中安装了 SBT 并导入到我的项目中
- 我在 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