Не могу найти банку для пропавшего класса - PullRequest
1 голос
/ 03 июля 2019

Не могу найти банку с классом org.apache.spark.sql.Row

Я открыл файл jar spark-sql_2.11-2.4.3.jar, но org.apache.spark.sql.Row класс не существует.Но документация в Spark говорит, что это должно быть там.https://spark.apache.org/docs/2.1.1/api/java/org/apache/spark/sql/Row.html

import org.apache.spark.sql.SparkSession
import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._

object BulkCopy extends App{
  val spark = SparkSession
    .builder()
    .appName("Spark SQL data sources example")
    .config("spark.some.config.option", "some-value")
    .getOrCreate()
  var df = spark.read.parquet("parquet")

  val bulkCopyConfig = com.microsoft.azure.sqldb.spark.config.Config(Map(
    "url"            -> jdbcHostname,
    "databaseName"   -> jdbcDatabase,
    "user"           -> jdbcUsername,
    "password"       -> jdbcPassword,
    "dbTable"        -> "dbo.RAWLOG_3_1_TEST1",
    "bulkCopyBatchSize" -> "2500",
    "bulkCopyTableLock" -> "true",
    "bulkCopyTimeout"   -> "600"
  ))

  df.bulkCopyToSqlDB(bulkCopyConfig)

Error:(17, 13) Symbol 'type org.apache.spark.sql.Row' is missing from the classpath.
This symbol is required by 'type org.apache.spark.sql.DataFrame'.
Make sure that type Row is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'package.class' was compiled against an incompatible version of org.apache.spark.sql.
   var df = spark.read.parquet("parquet")

Ответы [ 2 ]

0 голосов
/ 05 июля 2019
0 голосов
/ 03 июля 2019

org.apache.spark.sql.Row класс не является частью файла JAR spark-sql_2.11-2.4.3.jar.Вместо этого вы можете найти его в spark-catalyst_2.11-2.4.3.jar.Следующая зависимость от библиотеки spark sql зависит от lib-катализатора lib, и ваш инструмент сборки (maven / sbt) должен иметь возможность автоматически разрешить это для вас

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.11</artifactId>
    <version>2.4.3</version>
</dependency>

ИЛИ

libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.3"

Вот зависимости для библиотеки spar-sql: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...