- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Spark 结构化流处理一些事件。
传入事件如下所示:
事件1:
事件2:
等等。
我的目标是读取每个 URL 并生成一个新的 DF。到目前为止,我已经用这样的代码完成了,我做了 collect()
.
def createDF(url):
file_url = "abfss://" + container + "@" + az_storage_account + ".dfs.core.windows.net/" + az_storage_folder + "/" + url
""" Read data """
binary = spark.read.format("binaryFile").load(file_url)
""" Do other operations """
...
""" save the data """
# write it into blob again
return something
def loadData(batchDf, batchId):
"""
batchDf:
+--------------------+---------+-----------+--------------+--------------------+---------+------------+--------------------+----------------+--------------------+
| body|partition| offset|sequenceNumber| enqueuedTime|publisher|partitionKey| properties|systemProperties| url|
+--------------------+---------+-----------+--------------+--------------------+---------+------------+--------------------+----------------+--------------------+
|[{"topic":"/subsc...| 0|30084343744| 55489|2021-03-03 14:21:...| null| null|[aeg-event-type -...| []|http://path...|
+--------------------+---------+-----------+--------------+--------------------+---------+------------+--------------------+----------------+--------------------+
"""
""" Before ....
df = batchDf.select("url")
url = df.collect()
[createDF(item) for item in url]
"""
# Now without collect()
# Select the url field of the df
url_select_df = batchDf.select("url")
# Read url value
result = url_select_df.rdd.map(lambda x: createDF(x.url))
query = df \
.writeStream \
.foreachBatch(loadData) \
.outputMode("update") \
.queryName("test") \
.start() \
.awaitTermination()
但是,当我想提取 URL 而不收集时,我收到以下错误消息:
您似乎正在尝试从广播引用 SparkContext。
可能会发生什么?
非常感谢您的帮助
最佳答案
如果没有调用collect
,数据帧url_select_df
将分布在执行器之间。然后,当您调用 map
时,lambda 表达式将在执行器上执行。由于 lambda 表达式正在调用使用 SparkContext 的 createDF,因此您会收到异常,因为无法在执行器上使用 SparkContext。
看起来您已经找到了解决方案,即将数据帧收集
到驱动程序并在那里应用 lambda 表达式。
只需确保您的驱动程序没有重载(基于内存)。
关于azure - 您似乎正在尝试从广播中引用 SparkContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66458872/
我正在使用 Spark 在 Scala 中执行测试,创建 SparkContext 如下: val conf = new SparkConf().setMaster("local").setAppNa
我正在使用 spark-1.5.0-cdh5.6.0 .尝试了示例应用程序 (scala) 命令是: > spark-submit --class com.cloudera.spark.simbox.
我正在尝试在 Hadoop YARN 客户端模式下运行我的 spark 作业,我正在使用以下命令 $/usr/hdp/current/spark-client/bin/spark-submit -
我使用的是 Window 10、Scala 2.10.2、Spark 1.6.1 和 Java 1.8。下面是我尝试运行的代码。 import org.apache.spark.SparkCont
我在 PySpark 中有一小段代码,但我不断收到错误。我是新手,所以我不确定从哪里开始。 from pyspark import SparkContext, SparkConf conf = Spa
我正在尝试为 spark 应用程序编写测试,但在尝试运行下一个测试时出现此异常 class BasicIT { val sparkConf: SparkConf = new Sp
这个问题已经有答案了: Mac spark-shell Error initializing SparkContext (13 个回答) 已关闭2 年前。 我已经安装了以下版本的设置:Hadoop版本
所以我是 Spark 新手。我的版本是:Spark 2.1.2、Scala 版本 2.11.8(Java HotSpot(TM) 64 位服务器 VM、Java 1.8.0_131)。我在 Windo
我目前正在尝试扩展使用 Scala 和 Spark 的机器学习应用程序。我正在使用我在 Github 上找到的迪特里希·劳森 (Dieterich Lawson) 以前项目的结构 https://gi
我正在尝试使用 Spark 结构化流处理一些事件。 传入事件如下所示: 事件1: 网址http://first/path/to/read/from... 事件2: 网址http://second/pa
请告诉我我该如何使用 SparkContext 指定textFile()的输入路径。像下面这样对我不起作用。 sc.textFile("hdfs://localhost:54310/home/myFi
我正在尝试使用 Spark 结构化流处理一些事件。 传入事件如下所示: 事件1: 网址http://first/path/to/read/from... 事件2: 网址http://second/pa
我正在使用 Spark-shell 学习 Spark。 当从终端运行spark-shell时,默认已经提供了一个sparkContext。我想向 Spark 上下文添加一些手动设置(例如 setMas
我正处于学习spark的初级阶段。我刚刚开始使用 pyspark 使用 python 进行编码。在浏览基本代码时,我在 Jupyter 笔记本上遇到了此错误。好吧,我已经在我的电脑上安装了 Spark
我正在尝试使用wholeTextFiles读取文件夹中的所有文件名并单独处理它们(例如,我正在尝试获取每个数据集的SVD vector ,总共有100组)。数据保存在按空格分割并排列在不同行(如矩阵)
我在 CentOS 上工作,我已经设置了 $SPARK_HOME 并且还在 $PATH 中添加了 bin 的路径。 我可以从任何地方运行 pyspark。 但是当我尝试创建 python 文件并使用此
如何停止当前运行的任何 Spark 上下文。 信息API:斯卡拉Spark版本:Spark 2.3 实际上我已经创建了 Spark 上下文。为了阻止他们我应该输入例如instance.stop() 但
作为 this question 的延续, 你能告诉我我可以从 SparkContext.setLocalProperties 更改哪些属性吗? ? 我可以更换内核、RAM 等吗? 最佳答案 根据文档
我正在尝试使用 intellij 在 spark 上运行 Scala 代码。 Scala 代码 import scala.collection.JavaConverters._ import org.
我发誓我以前做过,但我找不到代码或答案。我想获取当前正在运行的 SparkContext 的名称并将其读入变量或将其打印到屏幕上。类似于以下内容: val myContext = SparkConte
我是一名优秀的程序员,十分优秀!