[英]PySpark Structured Streaming: Pass output of Query to API endpoint
[英]PySpark Structured Streaming Query - query in dashbord visibility
我編寫了一些示例代碼連接到 kafka 代理,從主題讀取數據並將其接收到 snappydata 表。
from pyspark.conf import SparkConf
from pyspark.context import SparkContext
from pyspark.sql import SQLContext, Row, SparkSession
from pyspark.sql.snappy import SnappySession
from pyspark.rdd import RDD
from pyspark.sql.dataframe import DataFrame
from pyspark.sql.functions import col, explode, split
import time
import sys
def main(snappy):
logger = logging.getLogger('py4j')
logger.info("My test info statement")
sns = snappy.newSession()
df = sns \
.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers", "10.0.0.4:9092") \
.option("subscribe", "test_import3") \
.option("failOnDataLoss", "false") \
.option("startingOffsets", "latest") \
.load()
bdf = df.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)")
streamingQuery = bdf\
.writeStream\
.format("snappysink") \
.queryName("Devices3") \
.trigger(processingTime="30 seconds") \
.option("tablename","devices2") \
.option("checkpointLocation","/tmp") \
.start()
streamingQuery.awaitTermination()
if __name__ == "__main__":
from pyspark.sql.snappy import SnappySession
from pyspark import SparkContext, SparkConf
sc = SparkSession.builder.master("local[*]").appName("test").config("snappydata.connection", "10.0.0.4:1527").getOrCreate()
snc = SnappySession(sc)
main(snc)
我用命令提交
/opt/snappydata/bin/spark-submit --master spark://10.0.0.4:1527 /path_to/file.py --conf snappydata.connection=10.0.0.4:1527
一切正常,從 Kafka Topic 讀取數據並寫入 snappydata 表。 我不明白為什么我在 SnappyData 儀表板 UI 中看不到這個流式查詢 - 在控制台中提交 pyspark 代碼后,我看到新的 Spark Master UI 啟動了。
如何從 pySpark 連接到 SnappyData 內部 Spark Master 是可能的?
SnappyData 支持僅在Smart Connector 模式下提交的 Python 作業,這意味着它將始終通過單獨的 Spark 集群啟動以與 SnappyData 集群通信。 因此,您會看到您的 Python 作業顯示在此 Spark 集群的 UI 上,而不是 SnappyData 的儀表板上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.