问题标签 [apache-spark-2.2]

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 投票
1 回答
547 浏览

apache-spark - 为什么在提交到 YARN 集群时,elasticsearch-spark 5.5.0 会因 AbstractMethodError 而失败?

我写了一个spark job,主要目标是写入es,然后提交,问题是当我提交到spark集群时,spark返回

[错误] [org.apache.spark.deploy.yarn.ApplicationMaster] 用户类抛出异常:java.lang.AbstractMethodError: org.elasticsearch.spark.sql.DefaultSource.createRelation(Lorg/apache/spark/sql/SQLContext;Lorg /apache/spark/sql/SaveMode;Lscala/collection/immutable/Map;Lorg/apache/spark/sql/Dataset;)Lorg/apache/spark/sql/sources/BaseRelation; java.lang.AbstractMethodError: org.elasticsearch.spark.sql.DefaultSource.createRelation(Lorg/apache/spark/sql/SQLContext;Lorg/apache/spark/sql/SaveMode;Lscala/collection/immutable/Map;Lorg/apache/ spark/sql/Dataset;)Lorg/apache/spark/sql/sources/BaseRelation; 在 org.apache.spark.sql.execution.datasources.DataSource.write(DataSource.scala:472) 在 org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:48) 在 org.apache .spark.sql.执行。

但是,如果我使用 local[2] 提交我的工作,那么工作就很好了。奇怪,两个jar的环境是一样的。我用的是elasticsearch-spark20_2.11_5.5.0和spark2.2

0 投票
0 回答
116 浏览

apache-spark - 如何在临时 EMR 集群中使用表分桶?

我在 EMR 上使用带有临时集群的 Spark 2.2。我想使用火花分桶,我不关心 Hive(仅限 Spark 工作负载)。

我可以使用spark.sql.warehouse.dirs3 存储桶来保存元存储信息以使它们不依赖于集群吗?

我还需要一个存放位置metastore_db吗?

幕后发生了什么?此命令显示的存储信息在哪里:spark.catalog.listTables.show

0 投票
1 回答
196 浏览

apache-spark - 为什么collect_set聚合要加入Exchange算子加入分桶表的查询?

我正在使用 Spark-2.2。我正在 POCing Spark 的分桶。我创建了一个分桶表,这是desc formatted my_bucketed_tbl输出:

当我通过查询执行组解释时,我可以看到我们已经避免了交换阶段:

但是,当我将 Spark 的max函数替换为 时collect_set,我可以看到执行计划与非分桶表相同,这意味着交换阶段不能幸免:

是否有任何我错过的配置,或者这是 Spark 的分桶目前存在的限制?

0 投票
0 回答
322 浏览

python - writestream 聚合窗口水印数据帧无法正常工作:

我正在使用 CSV 数据集作为输入,读取方式readStream如下:

架构下方:

我需要进行一些聚合,如下所示:

那行得通,确实输出模式是正确的:

但是,当我运行以下查询时:

我收到以下错误:

请注意,如果我在控制台上编写相同的数据帧,它运行良好。

看起来这个 Spark 版本中是否存在错误。有谁知道可能的解决方案。非常感谢提前

0 投票
2 回答
824 浏览

apache-spark - Spark 分桶读取性能

Spark 版本 - 2.2.1。

我创建了一个有 64 个桶的桶表,我正在执行一个聚合函数select t1.ifa,count(*) from $tblName t1 where t1.date_ = '2018-01-01' group by ifa。我可以看到 Spark UI 中有 64 个任务,它们仅使用 20 个执行程序(每个执行程序有 16 个内核)。有没有办法可以扩展任务数量,或者这就是分桶查询应该运行的方式(运行内核的数量作为桶的数量)?

这是创建表:

这是查询:

0 投票
1 回答
182 浏览

scala - Spark History Server - 识别作业写入的日志文件

我想使用 Spark History Server API ( http://127.0.0.1:18080/api/v1/applications/ ) 来识别 /tmp/spark-events/ 中某些作业写入的日志文件。我可以看到作业 ID 与日志文件名相同,所以我想如果我有一个唯一的作业名称,我可以查找它并获取关联的 ID。我的问题是我有一个 scala 应用程序,它在代码中设置应用程序名称:

每次运行作业时,它都具有相同的名称。是否可以在命令行中覆盖应用程序名称?我尝试过,--name但这不起作用。

如果做不到这一点,有没有更好的方法来做到这一点?

0 投票
1 回答
310 浏览

scala - 在 Spark 2.x (Scala) 中使用 flatmap 爆炸 Cassandra UDT

我在 Cassandra (3.11.2) 中有数据,这也是我的 df :

Cassandra 中的数据:

df详细信息:

这里 Cassandra 模式定义为:

id : String
some_data : list freezed test_udt created as --> CREATE TYPE test.test_udt ( s1 text, s2 text );

我正在使用 spark-cassandra-connector 2.0 从 Cassandra 提取数据以在 Spark 2.2.1 上进行处理。

所需输出

输出是 df 的分解形式

我过去的做法

我使用了 spark-cassandra-connector 1.6 和 Spark 1.6,我对上述问题有一个很好的解决方案:

升级到 2.x 后,我在使用explode函数时遇到错误。火花文件说explode已弃用。flatMap建议作为explode.

问题:

  1. 如何在 Scala 中分解 Dataframe 以获得与以前相同的结果?
  2. 如何使用 翻译我的旧代码flatmap
0 投票
1 回答
1321 浏览

scala - 带有下划线的 Scala 字符串插值

我是 Scala 的新手,所以请随时向我指出文档的方向,但我无法在我的研究中找到这个问题的答案。

我正在使用带有 Spark2.2 的 scala 2.11.8并尝试使用插值创建一个包含 dateString1_dateString2 (带下划线)的动态字符串,但存在一些问题。

这似乎有效:

但这失败了:

我希望这个带有转义的简单解决方法可以工作,但不会产生预期的结果:

请注意,这个问题不同于为什么不能在字符串插值中使用 _?因为这个问题正在寻找一个可行的字符串插值解决方案,而前一个问题更关注scala的内部。

0 投票
1 回答
391 浏览

apache-spark - 启用 multiLine 选项时 Spark 2 的 CSV 解析器的奇怪行为

从 CSV 文件创建 DataFrame 时,如果multiLine启用该选项,某些文件列会被错误地解析。

这里是代码执行。随着代码的进行,我将尝试显示奇怪的行为。

首先,我在两个变量中df_ok加载文件:加载不带multiLine选项的文件,同时df_ko加载multiLine启用选项的文件。我作为示例使用的文件\r\n为 EOL,它以 UTF-8 编码,并以管道作为列分隔符。

我注意到的第一件事是,使用 时multiLine,该列LSV_TYPE消失了。相反,它显示: string (nullable = true). 使用df_ko.columns它时会显示一些非常奇怪的东西:..., "LSV")YPE. 当我仅用\n作 EOL 时,不会发生这种情况。设置quote选项不会改变任何东西。

我测试的下一件事是列的选择FILIALE

所以我认为除了他的专栏名称之外还有其他内容:

比我检查文件的方式不同:

然后我确定问题来自 CSV 解析。添加charset选项或使用单义性作为parseLib选项的值不会改变任何事情。

我正在使用的文件:

我使用 Spark 2.2.0 在 HDP 2.6.4 上执行了我的代码。

有没有人有解决方法或知道发生了什么?

0 投票
1 回答
137 浏览

scala - 在 Spark 2 中创建垂直表

如何在 Spark 2 SQL 中创建垂直表。

我正在使用 Spark 2 / SQL / Scala 构建 ETL。我有普通表结构中的数据,比如。

输入表:

输出表: