问题标签 [databricks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - Spark SQL 从数据源动态获取最大值和最小值
我正在使用 Spark SQL,我想每天从 Oracle 表(包含超过 1800k 条记录)中获取整个数据。当我从 Oracle 读取时,应用程序挂起,因此我使用了partitionColumn,lowerBound & upperBound的概念。但是,问题是如何动态获取主键列的 l owerBound & upperBound 值?每天下界和上界的值都会发生变化。因此如何动态获取主键列的边界值?谁能指导我一个示例来解决我的问题?
java - 如何在 Spark Java 中将 RDD 字符串(xml 格式)转换为数据框?
如果 xml 数据在文件中可用,则在下面的链接中提供了很好的解决方案, https://github.com/databricks/spark-xml
下面的代码通过加载物理文件将 xml 转换为 DataSet..
但是如果 JavaRdd 中有 xml 数据,那么如何转换成 Dataset?
streaming - Zeppelin 6.5 + 用于结构化流 2.0.2 的 Apache Kafka 连接器
我正在尝试运行一个 zeppelin 笔记本,其中包含带有 Kafka 连接器的 spark 结构化流示例。
这是我的环境:
这是我的飞艇笔记本中的代码:
这是我运行笔记本时遇到的错误:
import org.apache.spark.sql.functions.{explode, split} java.lang.ClassNotFoundException:找不到数据源:kafka。请在https://cwiki.apache.org/confluence/display/SPARK/Third+Party+Projects找到软件包 在 org.apache.spark.sql.execution.datasources.DataSource.lookupDataSource(DataSource.scala:148) 在 org.apache.spark.sql.execution.datasources.DataSource.providingClass$lzycompute(DataSource.scala:79) 在 org .apache.spark.sql.execution.datasources.DataSource.providingClass(DataSource.scala:79) 在 org.apache.spark.sql.execution.datasources.DataSource.sourceSchema(DataSource.scala:218) 在 org.apache.spark .sql.execution.datasources.DataSource.sourceInfo$lzycompute(DataSource.scala:80) at org.apache.spark.sql.execution.datasources.DataSource.sourceInfo(DataSource.scala:80) at org.apache.spark.sql .execution.streaming.StreamingRelation$.apply(StreamingRelation.scala:30) at org.apache.spark.sql.streaming.DataStreamReader.load(DataStreamReader.scala:124) ... 86 被忽略 原因:java.lang.ClassNotFoundException : 卡夫卡。DefaultSource 在 scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)在 org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5$$anonfun$apply$1.apply(DataSource.scala:132) 在 org.apache.spark.sql.execution.datasources.DataSource$$anonfun $5$$anonfun$apply$1.apply(DataSource.scala:132) 在 scala.util.Try$.apply(Try.scala:192)132)在 org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5$$anonfun$apply$1.apply(DataSource.scala:132) 在 scala.util.Try$.apply(Try.scala:192 )132)在 org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5$$anonfun$apply$1.apply(DataSource.scala:132) 在 scala.util.Try$.apply(Try.scala:192 )
任何帮助建议将不胜感激。
谢谢
python-2.7 - 对 map reduce 中 Reduce 函数的行为感到困惑
我在使用 python 的 Spark 中进行以下地图减少练习时遇到问题。我的 map 函数返回以下 RDD。
rdd = [(3, ({0: [2], 1: [5], 3: [1]}, set([2]))),
(3, ({0: [4], 1: [ 3], 3: [5]}, set([1]))),
(1, ({0: [4, 5], 1: [2]}, set([3)))]
我写了一个 reducer 函数,它应该对具有相同键的元组进行一些计算(在前面的示例中,前两个键 = 3,最后一个键是 1)
问题是我期望 k 和 v 将始终具有相同的密钥(即k[0]==v[0]
)。但这段代码并非如此。
我在 Databricks 平台上工作,老实说,无法调试是一场噩梦,有时甚至无法“打印”工作。在这种环境下工作真的很令人沮丧。
tableau-api - 如何将 Tableau 连接到 Databricks Spark 集群?
我想通过利用 Databricks spark 集群来做一些数据分析工作,并将我的 Tableau 桌面连接到它以进行数据可视化。有没有人有经验可以在这里分享一下?非常感谢。
scala - 在 Spark 中用作 HashMap 键时,Scala 案例类对象“找不到键”
我正在尝试通过 Spark 2.0 中的函数访问 HashMap,但如果我并行化列表,它将失败。如果我不这样做,它会起作用,如果我不使用案例类,它会起作用。
这是我正在尝试做的一些示例代码:
这是确切的输出:
上面的代码与我正在尝试做的类似,除了案例类更复杂并且 HashMap 将列表作为值。同样在上面的示例中,我使用“收集”以便输出打印语句。样品在没有收集的情况下仍然给出相同的错误,但没有打印。
hashCodes 已经匹配,但我尝试为案例类覆盖 equals 和 hashCode,同样的问题。
这是使用 Databricks,所以我不相信我可以访问 REPL 或 spark-submit。
scala - 通过 Scala Spark 并行读取单独的目录并创建单独的 RDD
我需要从单独的源目录读取 JSON 文件并为每个目录创建单独的表。我希望这可以并行完成,但 Spark 不支持嵌套的 RDD,所以目前它是按顺序执行的。有没有一个好的解决方案可以让这些目录并行读取/处理?
这是我正在尝试的示例片段,但由于嵌套的 RDD,它不起作用:
将最后一行更改为 dirRDD.collect.foreach 有效,但随后该工作未分发并按顺序执行,因此非常慢。
还尝试了 dirRDD.collect.par.foreach,但它只在驱动程序上运行并行线程并且不利用所有其他节点。
我查看了 foreachAsync,但由于嵌套,我不确定在这种情况下异步是否一定是并行的。
这是通过 Databricks 使用 Spark 2.0 和 Scala 2.11。
===========
补充:
我尝试了在 Spark 中返回 FutureAction 的 foreachAsync,但这也给出了错误。
显然 SimpleFutureAction 不可序列化
scala - 如何从 Spark 运行 main 方法(在 Databricks 中)
我创建了一个简单的 Scala 代码:
然后用创建 JAR 文件的 SBT 编译。
然后将该 JAR 添加到 Spark 笔记本中:
如何在 Databricks 笔记本中运行(调用)这个主要方法(app2)以查看“println”命令的输出?
csv - Spark 2.0 CSV 错误
我正在从 1.6 升级到 spark 2,并且在读取 CSV 文件时遇到问题。在 spark 1.6 中,我会在 CSV 文件中读取类似的内容。
现在我使用文档中给出的以下代码:
这会导致运行时出现以下错误:
"Exception in thread "main" java.lang.RuntimeException: Multiple sources found for csv (org.apache.spark.sql.execution.datasources.csv.CSVFileFormat, com.databricks.spark.csv.DefaultSource15), please specify the fully qualified class name."
我认为这是因为我仍然有 spark-csv 依赖项,但是我删除了该依赖项并重建了应用程序,但我仍然得到同样的错误。删除后如何仍然找到databricks依赖项?
amazon-web-services - spark - redshift - s3:类路径冲突
我正在尝试使用 hadoop 2.7.2 和 allxuio 从 AWS 上的 spark 2.1.0 独立集群连接到 redshift,这给了我这个错误:Exception in thread "main" java.lang.NoSuchMethodError: com.amazonaws.services.s3.transfer.TransferManager <init(Lcom/amazonaws/services/s3/AmazonS3;Ljava/util/concurrent/ThreadPoolExecutor;)V at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:287)
据我了解,问题出在:
关于 Amazon SDK 依赖项的说明:此库声明了对 AWS Java SDK 组件的提供依赖项。在大多数情况下,这些库将由您的部署环境提供。但是,如果您获得 Amazon SDK 类的 ClassNotFoundExceptions,那么您需要在构建/运行时配置中添加对 com.amazonaws.aws-java-sdk-core 和 com.amazonaws.aws-java-sdk-s3 的显式依赖项. 有关更多详细信息,请参阅 project/SparkRedshiftBuild.scala 中的注释。
如spark-redshift-databricks中所述,我尝试了所有可能的类路径 jar 组合,但错误相同。我放置所有罐子的火花提交如下:
/usr/local/spark/bin/spark-submit --class com.XX.XX.app.Test --driver-memory 2G --total-executor-cores 40 --verbose --jars /home/ubuntu/aws-java-sdk-s3-1.11.79.jar,/home/ubuntu/aws-java-sdk-core-1.11.79.jar,/home/ubuntu/postgresql-9.4.1207.jar,/home/ubuntu/alluxio-1.3.0-spark-client-jar-with-dependencies.jar,/usr/local/alluxio/core/client/target/alluxio-core-client-1.3.0-jar-with-dependencies.jar --master spark://XXX.eu-west-1.compute.internal:7077 --executor-memory 4G /home/ubuntu/QAe.jar qa XXX.eu-west-1.compute.amazonaws.com 100 --num-executors 10 --conf spark.executor.extraClassPath=/home/ubuntu/aws-java-sdk-s3-1.11.79.jar:/home/ubuntu/aws-java-sdk-core-1.11.79.jar --driver-class-path /home/ubuntu/aws-java-sdk-s3-1.11.79.jar:/home/ubuntu/aws-java-sdk-core-1.11.79.jar:/home/ubuntu/postgresql-9.4.1207.jar --driver-library-path /home/ubuntu/aws-java-sdk-s3-1.11.79.jar:/home/ubuntu/aws-java-sdk-core-1.11.79.jar --driver-library-path com.amazonaws.aws-java-sdk-s3:com.amazonaws.aws-java-sdk-core.jar --packages databricks:spark-redshift_2.11:3.0.0-preview1,com.amazonaws:aws-java-sdk-s3:1.11.79,com.amazonaws:aws-java-sdk-core:1.11.79
我的内置.sbt:
只需从 postgresql 读取代码并写入 redshift:
我也列出了 /home/ubuntu/ 下所有集群节点上的所有 jar 文件。
有谁知道如何在 com.amazonaws.aws-java-sdk-core 和 com.amazonaws.aws-java-sdk-s3 上添加显式依赖项作为 Spark 中构建/运行时配置的一部分?还是罐子本身的问题:我是否使用了错误的版本 1.11.80 或 .. 79 等?我需要从 build.sbt 中排除这些库吗?将hadoop更改为2.8会解决问题吗?
以下是我基于测试的有用链接: 使用 Sparkere 进行依赖管理,将 jars 添加到 Spark 作业 - spark-submit