【发布时间】:2021-03-06 08:55:35
【问题描述】:
这是我的 IntelliJ 代码:
package com.dmngaya
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession
object ReadVertexPage {
def main(args: Array[String]): Unit = {
val conf: SparkConf = new SparkConf().setAppName("ReadVertexPage").setMaster("local")
val sc: SparkContext = new SparkContext(conf)
val spark = SparkSession
.builder()
.appName("Spark SQL basic example")
.getOrCreate()
val jdbcDF1 = spark.read.format("jdbc").options(
Map(
"driver" -> "com.tigergraph.jdbc.Driver",
"url" -> "jdbc:tg:http://127.0.0.1:14240",
"username" -> "tigergraph",
"password" -> "tigergraph",
"graph" -> "gsql_demo", // graph name
"dbtable" -> "vertex Page", // vertex type
"limit" -> "10", // number of vertices to retrieve
"debug" -> "0")).load()
jdbcDF1.show
}
}
当我在 spark-shell 中运行它时,它正在运行文件: /opt/spark/bin/spark-shell --jars /home/tigergraph/ecosys/tools/etl/tg-jdbc-driver/tg-jdbc-driver/target/tg-jdbc-driver-1.2.jar
scala> val jdbcDF1 = spark.read.format("jdbc").options(
| Map(
| "driver" -> "com.tigergraph.jdbc.Driver",
| "url" -> "jdbc:tg:http://127.0.0.1:14240",
| "username" -> "tigergraph",
| "password" -> "tigergraph",
| "graph" -> "gsql_demo", // graph name
| "dbtable" -> "vertex Page", // vertex type
| "limit" -> "10", // number of vertices to retrieve
| "debug" -> "0")).load()
jdbcDF1: org.apache.spark.sql.DataFrame = [v_id: string, page_id: string]
scala> jdbcDF1.show
result:
+----+--------+
|v_id| page_id|
+----+--------+
| 7| 7|
| 5| 5|
| 10| 10|
|1002| 1002|
| 3| 3|
|1000|new page|
|1003| 1003|
| 1| 1|
| 6| 6|
|1001| |
来自 IntelliJ,我有以下错误:
20/11/23 10:43:43 信息共享状态:设置 hive.metastore.warehouse.dir('null') 的值为 spark.sql.warehouse.dir ('文件:/home/tigergraph/fiverr-2/spark-warehouse')。 20/11/23 10:43:43 INFO SharedState:仓库路径是 '文件:/home/tigergraph/fiverr-2/spark-warehouse'。线程异常 “main” java.lang.ClassNotFoundException:找不到数据源: 数据库。请在以下位置找到包裹 http://spark.apache.org/third-party-projects.html 在 org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:679) 在 org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSourceV2(DataSource.scala:733) 在 org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:248) 在 org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:221) 在 com.dmngaya.ReadVertexPage$.main(ReadVertexPage.scala:25) 在 com.dmngaya.ReadVertexPage.main(ReadVertexPage.scala) 原因: java.lang.ClassNotFoundException:jdbc.DefaultSource 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.apache.spark.sql.execution.datasources.DataSource$.$anonfun$lookupDataSource$5(DataSource.scala:653) 在 scala.util.Try$.apply(Try.scala:213) 在 org.apache.spark.sql.execution.datasources.DataSource$.$anonfun$lookupDataSource$4(DataSource.scala:653) 在 scala.util.Failure.orElse(Try.scala:224) 在 org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:653) ... 5 更多 20/11/23 10:43:46 信息 SparkContext:从 关闭挂钩 20/11/23 10:43:46 信息 SparkUI:在 http://tigergraph-01:4040 20/11/23 10:43:46 信息 MapOutputTrackerMasterEndpoint:MapOutputTrackerMasterEndpoint 停了! 20/11/23 10:43:46 INFO MemoryStore: MemoryStore 已清除 20/11/23 10:43:46 信息 BlockManager:BlockManager 已于 20/11/23 停止 10:43:47 信息 BlockManagerMaster:BlockManagerMaster 已于 20/11/23 停止 10:43:47 信息 OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator 停止了! 20/11/23 10:43:47 信息 SparkContext: 成功停止 SparkContext 20/11/23 10:43:47 INFO ShutdownHookManager:称为 20/11/23 10:43:47 INFO 的关闭挂钩 ShutdownHookManager:删除目录 /tmp/spark-66dd4dc4-c70b-4836-805b-d68b3183ccbf 进程完成 退出代码 1
我该如何解决这个问题?
【问题讨论】:
标签: scala apache-spark intellij-idea jdbc tigergraph