问题标签 [apache-spark-2.0]

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.

0 投票
2 回答
2970 浏览

apache-spark - Apache Spark 中的 Jaro-Winkler 分数计算

我们需要在 Apache Spark Dataset中跨字符串实现 Jaro-Winkler 距离计算。我们是新来的火花,在网上搜索后,我们找不到太多东西。如果您能指导我们,那就太好了。我们考虑过使用flatMap然后意识到它没有帮助,然后我们尝试使用几个 foreach 循环但无法弄清楚如何前进。因为每个字符串都必须与所有字符串进行比较。就像在下面的数据集中一样。

在上述数据框中找到的所有字符串的示例 jaro winkler 得分。

标签之间的距离得分,0,1 -> 0.56
标签之间的距离得分,0,2 -> 0.77
标签之间的距离得分,0,3 -> 0.45
标签之间的距离得分,1,2 -> 0.77
标签之间的距离得分,2 ,3 -> 0.79

0 投票
5 回答
6324 浏览

apache-spark - 重新启动火花流应用程序的最佳方法是什么?

我基本上想在我的驱动程序中编写一个事件回调,它将在该事件到达时重新启动火花流应用程序。我的驱动程序通过从文件中读取配置来设置流和执行逻辑。每当文件更改(添加新配置)时,驱动程序必须按顺序执行以下步骤,

  1. 重新开始,
  2. 读取配置文件(作为主要方法的一部分)和
  3. 设置流

实现这一目标的最佳方法是什么?

0 投票
1 回答
7010 浏览

scala - Spark 2.0 设置罐子

我正在 play-scala 应用程序中从 1.6 升级到 spark 2.0,但不太确定如何设置我想要的 jar 文件。以前会定义一个 SparkConf,我可以调用的方法之一是 setJars,它允许我指定我想要的所有 jar 文件。现在我正在使用 SparkSession 构建器来构建我的 spark conf 和 spark 上下文,我没有看到任何类似的方法来指定 jar 文件?我怎样才能做到这一点?

这是我之前创建 sparkconf 的方式:

我可以使用 sparksession builder 来完成与“setJars”相同的事情吗?

0 投票
2 回答
3127 浏览

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依赖项?

0 投票
2 回答
5413 浏览

apache-spark - 为什么 SparkSQL 在 SQL 查询中需要两个文字转义反斜杠?

当我从 Spark 2.0 REPL (spark-shell) 运行以下 Scala 代码时,它会按照我的预期运行,用一个简单的正则表达式拆分字符串。

给出预期的输出

但是我很困惑是否需要使用双反斜杠而不是单个反斜杠来转义字面问号(这里表示为四个反斜杠,因为在不使用三引号时我们当然必须在 Scala 中转义反斜杠)。

我确认我的一位同事为 Spark 1.5 编写的一些非常相似的代码使用单个(文字)反斜杠就可以正常工作。但是如果我在 Spark 2.1 中只使用一个文字反斜杠,我会从 JVM 的正则表达式引擎中得到错误,"Dangling meta character '?' near index 0". 我知道这意味着问号没有正确转义,但它闻起来像反斜杠本身必须先转义,然后再转义 Scala 。

我猜这对于将控制字符(如换行符)插入 SQL 查询本身很有用。如果这从 Spark 1.5 更改为 2.1,我只是感到困惑?

我为此搜索了很多,但没有找到任何东西。要么发生了一些变化,要么我同事的代码以意想不到的方式工作。

我也用 Python/pyspark 尝试过这个,同样的条件适用 - SQL 中需要双反斜杠。

谁能解释一下?

我在 Windows 上运行相对简单的设置,使用 Spark 2.1.0、JDK 1.8.0_111 和 Hadoop winutils.exe。

0 投票
2 回答
1299 浏览

apache-spark - 在 Spark 2.0 中,jdbc 数据帧模式自动应用为 nullable = false

对于 jdbc 数据帧,如果我指定一个自定义查询,例如

然后所有列的架构都可以为 null = false

当我使用自定义查询并且结果集包含任何空值时,这会导致空指针异常。我还尝试以编程方式转换模式,但由于火花谱系它仍然失败,因为原始数据框具有受限模式,而不管模式转换的数据框具有什么。

我找到了解决方法。如果我只提供表名,然后提供 select 和 where 子句

sqlContext.read.jdbc(url, table1, dconnectionProperties). select("col1", "col2", "col3", "col4"). where(s"col4 < 10.0")

架构正确(或者我想要的方式)推断为

但我想使用自定义查询,因为我的查询有一些连接和聚合,我想将它们推送到数据库中执行。

在我们迁移到 spark 2.0.x 之后,这开始出现,在此之前它工作正常

0 投票
0 回答
663 浏览

apache-spark - 如何设置 Spark History Server 的时区?

当我在位于 PST 时区的一组机器上提交作业时,Spark Master 的时间正确,但历史服务器显示的时间提前 8 小时,即 GMT。有没有办法来解决这个问题 ?

0 投票
2 回答
15043 浏览

arrays - 如何在 spark (scala) 中将 WrappedArray[WrappedArray[Float]] 转换为 Array[Array[Float]]

我正在使用 Spark 2.0。我的数据框有一列包含WrappedArrayFloat 的 WrappedArrays。

行的一个例子是:

我试图将此列转换为Array[Array[Float]].

到目前为止,我尝试的是以下内容:

但我收到以下错误:

任何想法将不胜感激。谢谢

0 投票
6 回答
5859 浏览

macos - 断开连接时,Spark 无法以本地模式启动 [在 Spark 中处理 IPv6 时可能出现错误??]

问题与此处描述的相同Error when started spark-shell local on Mac

...但我未能找到解决方案。我也曾经收到格式错误的 URI 错误,但现在我得到了预期的主机名。

所以当我没有连接到互联网时,spark shell 无法在本地模式下加载[见下面的错误]。所以我正在运行从互联网下载的 Apache Spark 2.1.0,在我的 Mac 上运行。所以我跑./bin/spark-shell了,它给了我下面的错误。

所以我已经阅读了 Spark 代码,它使用 JavaInetAddress.getLocalHost()来查找 localhost 的 IP 地址。所以当我连接到互联网时,我会用我的本地主机名返回一个 IPv4。

但关键是,当断开连接时,我得到一个 IPv6,其值中有一个百分比(它是有范围的):

而且这个IP和你在错误信息中看到的一样。我觉得我的问题是它会抛出 Spark,因为它无法处理%10结果。

我的猜测是这是一个错误,可能很少有人目睹,因为人们总是连接到互联网,或者他们的 mac 不返回作用域 IPv6。即使我可以配置我的 Mac 来解决这个问题,我也很高兴。我做了任何事情,包括将 IPv6 设置为手动或本地链接,但无济于事。

在此处输入图像描述

我也试过删除::1 localhost线路/etc/hosts无济于事。

所以这是 DEBUG 输出的完整错误(请注意使用相同的 IPv6 来监听):

0 投票
1 回答
1919 浏览

apache-spark - Spark-java 多线程与运行单个 Spark 作业

我是 Spark 的新手,并试图了解以下方法的性能差异(Spark on hadoop)

场景:根据批处理,我有 50 个配置单元查询要运行。有些可以并行运行,有些可以顺序运行。

- 第一种方法

所有查询都可以存储在一个配置单元表中,我可以编写一个 Spark 驱动程序来一次读取所有查询并使用 java 多线程并行运行所有查询(使用 HiveContext)

  • 优点:易于维护
  • 缺点:所有资源都可能被占用,并且每个查询的性能调整可能很困难。

- 第二种方法

使用 oozie spark 操作单独运行每个查询

  • 优点:优化可以在查询级别完成
  • 缺点:难以维护。

我找不到任何关于 Spark 将如何在第一种方法内部处理查询的第一种方法的文档。从性能的角度来看,哪种方法更好?

我能找到的关于 Spark 多线程的唯一内容是: “在每个 Spark 应用程序中,如果多个“作业”(Spark 操作)由不同的线程提交,它们可能会同时运行”

提前致谢