问题标签 [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.
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
apache-spark - 如何在临时 EMR 集群中使用表分桶?
我在 EMR 上使用带有临时集群的 Spark 2.2。我想使用火花分桶,我不关心 Hive(仅限 Spark 工作负载)。
我可以使用spark.sql.warehouse.dir
s3 存储桶来保存元存储信息以使它们不依赖于集群吗?
我还需要一个存放位置metastore_db
吗?
幕后发生了什么?此命令显示的存储信息在哪里:spark.catalog.listTables.show
?
apache-spark - 为什么collect_set聚合要加入Exchange算子加入分桶表的查询?
我正在使用 Spark-2.2。我正在 POCing Spark 的分桶。我创建了一个分桶表,这是desc formatted my_bucketed_tbl
输出:
当我通过查询执行组解释时,我可以看到我们已经避免了交换阶段:
但是,当我将 Spark 的max
函数替换为 时collect_set
,我可以看到执行计划与非分桶表相同,这意味着交换阶段不能幸免:
是否有任何我错过的配置,或者这是 Spark 的分桶目前存在的限制?
python - writestream 聚合窗口水印数据帧无法正常工作:
我正在使用 CSV 数据集作为输入,读取方式readStream
如下:
架构下方:
我需要进行一些聚合,如下所示:
那行得通,确实输出模式是正确的:
但是,当我运行以下查询时:
我收到以下错误:
请注意,如果我在控制台上编写相同的数据帧,它运行良好。
看起来这个 Spark 版本中是否存在错误。有谁知道可能的解决方案。非常感谢提前
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 个内核)。有没有办法可以扩展任务数量,或者这就是分桶查询应该运行的方式(运行内核的数量作为桶的数量)?
这是创建表:
这是查询:
scala - Spark History Server - 识别作业写入的日志文件
我想使用 Spark History Server API ( http://127.0.0.1:18080/api/v1/applications/ ) 来识别 /tmp/spark-events/ 中某些作业写入的日志文件。我可以看到作业 ID 与日志文件名相同,所以我想如果我有一个唯一的作业名称,我可以查找它并获取关联的 ID。我的问题是我有一个 scala 应用程序,它在代码中设置应用程序名称:
每次运行作业时,它都具有相同的名称。是否可以在命令行中覆盖应用程序名称?我尝试过,--name
但这不起作用。
如果做不到这一点,有没有更好的方法来做到这一点?
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
.
问题:
- 如何在 Scala 中分解 Dataframe 以获得与以前相同的结果?
- 如何使用 翻译我的旧代码
flatmap
?
scala - 带有下划线的 Scala 字符串插值
我是 Scala 的新手,所以请随时向我指出文档的方向,但我无法在我的研究中找到这个问题的答案。
我正在使用带有 Spark2.2 的 scala 2.11.8并尝试使用插值创建一个包含 dateString1_dateString2 (带下划线)的动态字符串,但存在一些问题。
这似乎有效:
但这失败了:
我希望这个带有转义的简单解决方法可以工作,但不会产生预期的结果:
请注意,这个问题不同于为什么不能在字符串插值中使用 _?因为这个问题正在寻找一个可行的字符串插值解决方案,而前一个问题更关注scala的内部。
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 上执行了我的代码。
有没有人有解决方法或知道发生了什么?
scala - 在 Spark 2 中创建垂直表
如何在 Spark 2 SQL 中创建垂直表。
我正在使用 Spark 2 / SQL / Scala 构建 ETL。我有普通表结构中的数据,比如。
输入表:
输出表: