问题标签 [spark3]

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 投票
0 回答
21 浏览

json - Spark:读取 json 数据导致某些记录被填充为 NULL

我有一个从 API 调用中获取的复杂 JSON 数据。我正在尝试在 Spark 数据框中读取这些数据,但在此过程中,我发现一些记录填充了空值,而很少有正确的数据。

我正在做一些事情:

我正在使用的数据集受到限制,因此我无法在此处分享。但它由多个嵌套 JSON 字段的数组组成,其中 JSON 的架构可能在数组项之间有所不同。

如果我尝试一次读取数组的每个元素,那么它可以正常工作。我不知道是什么导致了这个问题,因为这在 Spar 2.4 中工作,但我们现在正在升级到 Spark 3。

0 投票
1 回答
99 浏览

apache-spark - SPARK 3 - 用前几行的值填充值(查找)

我是 SPARK 的新手。我有 2 个数据框eventsplayers

事件数据框由列组成

event_id| player_id| match_id| impact_score

玩家数据框由列组成

player_id| player_name| nationality

我正在player_id使用此查询合并两个数据集:

getCurrentTeam函数触发一个返回值的 HTTP 调用(玩家的当前团队)。

我有超过 3000 万次足球比赛和 97 名球员的数据。我需要帮助创建列current_team。想象一下某个玩家在事件数据框中出现了 130,000 次。我需要从前几行中查找值。如果播放器出现,我只需获取该值(如内存目录)。如果它没有出现,那么我调用 web 服务。

0 投票
1 回答
25 浏览

spark3 - 如何使用 java 在 spark3 中读取地图

数据集 person = spark.read.textfile(path).map(Person::new,Encoders.bean(Person.class))

当我在上面尝试时,它将在 spark2.4(scala-2.11) 中工作,但在 spark3.1.1(scala-2.12) 中,它对于 DataSet 类型显示为模棱两可。而且我在哪里使用地图,过滤器,地图分区,平面地图变得模棱两可/

但是通过进行类型转换,所有转换都会成功 spark.read.textfile(path).map((MapFunction<String,Person>)Person::new,Encoders.bean(Person.class))

有没有其他方法没有类型转换/代码更改

0 投票
2 回答
148 浏览

apache-spark - 在 Spark 中将日期转换为 ISO 星期日期

在一列中有日期,如何创建包含ISO 周日期的列?

ISO 周日期由年份周数工作日组成。

  • year与使用year函数获得的年份不同。
  • 周数是最简单的部分 - 可以使用weekofyear.
  • weekday应该返回 1 表示周一,7 表示周日,而 Sparkdayofweek不能这样做。

示例数据框:

期望的结果:

0 投票
0 回答
69 浏览

scala - Beam spark3-runner 与 scala 版本冲突

当尝试将 Beam 与 spark 3.1.2 一起使用时,我们遇到了这个问题:

InvalidClassException:scala.collection.mutable.WrappedArray

如此处所述:https://www.mail-archive.com/issues@spark.apache.org/msg297820.html

这是一个不兼容的问题:spark 3.1.2 是用 scala 2.12.10 编译的,但这个问题仅适用于 scala >= 2.12.14。

我看到两个解决方案:

=> 用 scala 版本编译 spark & beam >= 2.12.14

=>将beam使用的spark版本升级到3.2.0,可以用scala 2.13编译

但是这两种解决方案都可能很长(需要了解梁源代码),有什么想法吗?

编辑 21/01/2022:

我的问题是:你认为这个问题有一个简单的解决方法吗?

我刚刚发现 Jira 票已经公开了:https ://issues.apache.org/jira/browse/BEAM-12762

感谢您的回答@Moritz,但我现在不知道该怎么做;如何在不编译 Beam 的情况下将其他版本的 Sclala 打包到 Beam Docker Image 中?

0 投票
0 回答
37 浏览

maven - 未能针对 Hadoop 2.7 构建 Spark 3.2.0

我正在针对 Hadoop 2.7 构建 Spark 3.2.0 但失败了。

错误

在此处输入图像描述

0 投票
1 回答
36 浏览

scala - Scala:使用 spark 3.1.2 解析时间戳

我有一个 Excel 阅读器,我将结果放入 sparks 数据框中。我在解析时间戳时遇到问题。

我有时间戳作为字符串,如Wed Dec 08 10:49:59 CET 2021. 我使用的是 spark-sql 版本2.4.5,一切正常,直到我最近更新到 version 3.1.2

请在下面找到一些最小的代码。

使用 spark 版本运行此代码的2.4.5工作方式与预期一样,并产生以下输出:

现在,仅使用 spark version 执行相同的代码3.1.2会导致以下错误:

(可点击链接:https ://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html )

这个网站对我没有进一步的帮助。我在我的格式字符串中没有发现任何错误。该符号E表示day-of-week为文本,如Tue; Tuesday。符号M代表month-of-year类似7; 07; Jul; July。这些符号H,m,s,y分别是小时、分钟、秒或年。符号z表示time-zone name类似Pacific Standard Time; PST。我在这里错过了一些明显的东西吗?

任何帮助将不胜感激。先感谢您。

0 投票
1 回答
47 浏览

pyspark - 在 pyspark 中创建一个查找列

我正在尝试在 pyspark 数据框中创建一个新列,该列“查找”同一数据框中的下一个值,并将其复制到所有下一行,直到下一个事件发生。

我使用了如下使用的窗口函数,但在列上获得下一个值仍然没有运气:

显然它不会正确查找“下一个”事件。关于可能的方法的任何想法?

示例数据框将是:

时间戳 col1 col2 col3
2021-02-02 01:03:55 s1 无效的 无效的
2021-02-02 01:04:16.952854 s1 other_ind 无效的
2021-02-02 01:04:32.398155 s1 无效的 无效的
2021-02-02 01:04:53.793089 s1 event_start_ind event_1_value
2021-02-02 01:05:10.936913 s1 无效的 无效的
2021-02-02 01:05:36 s1 other_ind 无效的
2021-02-02 01:05:42 s1 无效的 无效的
2021-02-02 01:05:43 s1 无效的 无效的
2021-02-02 01:05:44 s1 event_start_ind event_2_value
2021-02-02 01:05:46.623198 s1 无效的 无效的
2021-02-02 01:06:50 s1 无效的 无效的
2021-02-02 01:07:19.607685 s1 无效的 无效的

期望的结果是:

时间戳 col1 col2 col3 col4
2021-02-02 01:03:55 s1 无效的 无效的 event_1_value
2021-02-02 01:04:16.952854 s1 other_ind 无效的 event_1_value
2021-02-02 01:04:32.398155 s1 无效的 无效的 event_1_value
2021-02-02 01:04:53.793089 s1 event_start_ind event_1_value event_1_value
2021-02-02 01:05:10.936913 s1 无效的 无效的 event_2_value
2021-02-02 01:05:36 s1 other_ind 无效的 event_2_value
2021-02-02 01:05:42 s1 无效的 无效的 event_2_value
2021-02-02 01:05:43 s1 无效的 无效的 event_2_value
2021-02-02 01:05:44 s1 event_start_ind event_2_value event_2_value
2021-02-02 01:05:46.623198 s1 无效的 无效的 无效的
2021-02-02 01:06:50 s1 无效的 无效的 无效的
2021-02-02 01:07:19.607685 s1 无效的 无效的 无效的
0 投票
0 回答
73 浏览

certificate - 在 webassessor scala doc 中找不到 org.apache.spark.sql.functions

我打算给 Databricks 认证的 apache-spark 3.0 考试,在考试中,他们提供 apache-spark scala doc,https: //www.webassessor.com/zz/DATABRICKS/Scala_v2.html

但我在https://www.webassessor.com/zz/DATABRICKS/Scala_v2.html中找不到org.apache.spark.sql.functions的文档

同样在练习测试中,他们建议使用上述文档,所以我很困惑该软件包是否可以在考试中使用?