我想在画布上绘制一个图像,其中图像的源将由用户动态设置.我在尝试为图像设置src时遇到以下错误:
不允许加载本地资源:file:/// D:/My%20Picsb.jpg'
有没有办法从本地驱动器加载文件在画布上绘制它们?
var img = new Image();
img.onload = function () {
context.drawImage(img, 20, 20, 50, 50);
};
img.src = "D:\My Pics\tb.jpg";
Run Code Online (Sandbox Code Playgroud) 我是 Spark 新手,正在阅读一些有关监控 Spark 应用程序的内容。基本上,我想知道 Spark 应用程序在给定的触发时间内处理了多少条记录以及查询进度。我知道“lastProgress”给出了所有这些指标,但是当我将awaitTermination与“lastProgress”一起使用时,它总是返回null。
val q4s = spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", brokers)
.option("subscribe", topic)
.option("startingOffsets", "earliest")
.load()
.writeStream
.outputMode("append")
.option("checkpointLocation", checkpoint_loc)
.trigger(Trigger.ProcessingTime("10 seconds"))
.format("console")
.start()
println("Query Id: "+ q4s.id.toString())
println("QUERY PROGRESS.........")
println(q4s.lastProgress);
q4s.awaitTermination();
Run Code Online (Sandbox Code Playgroud)
输出:
Query Id: efd6bc15-f10c-4938-a1aa-c81fdb2b33e3
QUERY PROGRESS.........
null
Run Code Online (Sandbox Code Playgroud)
如何在使用awaitTermination时获取查询的进度,或者如何在不使用awaitTermination的情况下保持查询持续运行?
提前致谢。
我的 Kafka 主题有三个分区,我想知道是否可以仅从三个分区中的一个进行读取。我的消费者是 Spark 结构化流应用程序。
以下是我在 Spark 中现有的 Kafka 设置。
val inputDf = spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", brokers)
.option("subscribe", topic)
.option("startingOffsets", "latest")
.load()
Run Code Online (Sandbox Code Playgroud) apache-kafka kafka-consumer-api spark-structured-streaming spark-streaming-kafka
我通过 Spark 结构化流处理来自 kafka 主题的数据,该主题有 3 个分区。由于 Spark 结构化流不允许您显式提供 group.id 并向消费者分配一些随机 id,因此我尝试使用下面的 kafka 命令检查消费者组 id
./kafka-consumer-groups.sh --bootstrap-server kfk01.sboxdc.com:9092,kfk02.sboxdc.com:9092,kfk03.sboxdc.com:9092 --list
output
spark-kafka-source-054e8dac-bea9-46e8-9374-8298daafcd23--1587684247-driver-0
spark-kafka-source-756c08e8-6a84-447c-8326-5af1ef0412f5-209267112-driver-0
spark-kafka-source-9528b191-4322-4334-923d-8c1500ef8194-2006218471-driver-0
Run Code Online (Sandbox Code Playgroud)
以下是我的问题
1)为什么要创建3个消费者组?是因为有3个分区吗?
2)有什么方法可以在spark应用程序中获取这些消费者组名称?
3)尽管我的 Spark 应用程序仍在运行,但一段时间后这些组名称没有显示在消费者组列表中。这是因为所有数据都被spark应用程序消耗了并且该kafka主题中没有更多数据了吗?
4)如果我的关于第3点的假设是正确的,那么如果新数据到达,它会创建一个新的消费者组ID还是消费者组的名称将保持不变?
以下是我的阅读流
val inputDf = spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", brokers)
.option("subscribe", topic)
// .option("assign"," {\""+topic+"\":[0]}")
.option("startingOffsets", "earliest")
.option("maxOffsetsPerTrigger", 60000)
.load()
Run Code Online (Sandbox Code Playgroud)
我的应用程序中有 3 个写入流,如下所示
val df = inputDf.selectExpr("CAST(value AS STRING)","CAST(topic AS STRING)","CAST (partition AS INT)","CAST (offset AS INT)","CAST (timestamp AS STRING)")
val df1 = inputDf.selectExpr("CAST (partition AS INT)","CAST (offset AS INT)","CAST (timestamp AS …Run Code Online (Sandbox Code Playgroud) 我想在画布上画椭圆选项,以便在画布上绘画.我已经部分实现了这一点.问题是我无法获得圆的半径,目前我已将其硬编码为15.此外,我想绘制椭圆(与油漆相同)不是精确的圆.这是我使用鼠标事件在画布上绘制圆圈的代码.请帮助我使用代码来实现我上面提到的要求.
function tool_circle() {
var tool = this;
this.started = false;
this.mousedown = function (ev) {
tool.started = true;
tool.x0 = ev._x;
tool.y0 = ev._y;
};
this.mousemove = function (ev) {
if (!tool.started) {
return;
}
context.fillStyle = 'red';
var distance = Math.sqrt(Math.pow(tool.x0 - ev._x, 2) + Math.pow(tool.y0 - ev._y));
context.beginPath();
context.arc(tool.x0, tool.y0,15, 0, Math.PI * 2, false);
context.stroke();
context.fill();
};
this.mouseup = function (ev) {
if (tool.started) {
tool.mousemove(ev);
tool.started = false;
img_update();
}
};
}
Run Code Online (Sandbox Code Playgroud) 我想允许用户从一个div容器拖动图标并放下并在画布上绘制它们,保持原始图标不变.图标在表格上动态添加.当我拖动图标时,我也希望用光标拖动图标效果.当我使用"helper:'clone'"属性时,我得到效果但是删除的位置不正确,当我删除此属性时,原始图标被删除.
我的父容器图标
<div id="dvEquipmentTool" style="removed: absolute; border: 1px solid rgb(173, 201, 247);
display: block; background-color: white; height: 400px; z-index: 50000; padding: 3px;
removed 100px; removed 50px; width: 200px !important;" class="ui-draggable">
<table id="tbEquipmentTool" border="0" style="background-color: White; padding-left: 10px;
max-height: 400px !important;">
<tbody>
<tr id="tRow1">
<td>
<img src="" id="imgEquipIcon1" class="ui-draggable" style="position: relative; left: 473px;
top: 183px;">
</td>
<td>
<span id="lblImgEquipName1" class="label">10-FL-105-A20</span><span id="lblImgEquipID1"
class="label" style="display: none;">100200</span>
</td>
<td width="10px">
</td>
</tr>
<tr id="tRow2">
<td>
<img src="" id="imgEquipIcon2" class="ui-draggable" style="position: relative;">
</td>
<td>
<span …Run Code Online (Sandbox Code Playgroud) 我有一个 Spark 结构化流应用程序,它从 kafka 读取数据并将其写入 hdfs。我想根据当前日期动态更改 hdfs 写入路径,但结构化流媒体似乎不能那样工作。它只是创建一个应用程序启动日期的文件夹,即使日期发生变化,也会继续写入同一文件夹。有什么办法可以根据当前日期动态更改路径?
下面是我的 writestream 的样子
val inputFormat = new SimpleDateFormat("yyyy-MM-dd")
val outPath = "maindir/sb_topic/data/loaddate="
val dswWriteStream =dfresult.writeStream
.outputMode(outputMode)
.format(writeformat)
.option("path",outPath+inputFormat.format((new java.util.Date()).getTime())) //hdfs file write path
.option("checkpointLocation", checkpointdir)
.option("maxRecordsPerFile", 999999999)
.trigger(Trigger.ProcessingTime("10 minutes"))
Run Code Online (Sandbox Code Playgroud) import math
class Circle(object):
def __init__(this,x,y,rad):
this.x=x
this.y=y
this.rad=rad
def relate(circ1,circ2):
diff=__posDiff((circ1.x,circ1.y),(circ2.x,circ2.y))
print diff
def __posDiff(p1,p2):
diff=math.sqrt((p1[0]-p2[0])**2 + (p1[1]-p2[1])**2)
return diff
Run Code Online (Sandbox Code Playgroud)
当我尝试运行上面的代码时,我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "Circle.py", line 18, in relate
diff=__posDiff((circ1.x,circ1.y),(circ2.x,circ2.y))
NameError: global name '_Circle__posDiff' is not defined
Run Code Online (Sandbox Code Playgroud)
相当新的python,无法弄清楚如何在类中调用函数.如果有人可以帮助和解释
apache-spark ×3
javascript ×3
apache-kafka ×2
canvas ×2
html5 ×1
html5-canvas ×1
jquery ×1
python ×1