[英]Connecting from Azure Synapse Analytics Spark Pool to Azure SQL Database
[英]Spatial with SparkSQL/Python in Synapse Spark Pool using apache-sedona?
我想對大型數據集進行空間查詢; 例如 geopandas 會太慢。 我在這里找到的靈感: https ://anant-sharma.medium.com/apache-sedona-geospark-using-pyspark-e60485318fbe
在 Synapse Analytics 的 Spark Pool 中,我准備了(通過 Azure 門戶):
要求.txt:
azure-storage-file-share
geopandas
apache-sedona
geotools-wrapper-geotools-24.1.jar
sedona-sql-3.0_2.12-1.2.0-incubating.jar
配置文件:
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.kryo.registrator org.apache.sedona.core.serde.SedonaKryoRegistrator
在 Pyspark 筆記本中
print(spark.version)
print(spark.conf.get("spark.kryo.registrator"))
print(spark.conf.get("spark.serializer"))
輸出是:
3.1.2.5.0-58001107
org.apache.sedona.core.serde.SedonaKryoRegistrator
org.apache.spark.serializer.KryoSerializer
然后我嘗試了:
from pyspark.sql import SparkSession
from sedona.register import SedonaRegistrator
from sedona.utils import SedonaKryoRegistrator, KryoSerializer
spark = SparkSession.builder.master("local[*]").appName("Sedona App").config("spark.serializer", KryoSerializer.getName).config("spark.kryo.registrator", SedonaKryoRegistrator.getName).getOrCreate()
SedonaRegistrator.registerAll(spark)
但它失敗了:Py4JJavaError:調用 o636.count 時出錯。 :org.apache.spark.SparkException:作業因階段失敗而中止:任務序列化失敗:org.apache.spark.SparkException:無法向 Kryo 注冊類
一個簡單的檢查東西是否正確安裝可能會允許這樣做:
%%sql
SELECT ST_Point(0,0);
請幫助獲取在 Synapse notebook 中運行的 pyspark 中注冊的空間功能!
根據我最后的重現,我能夠成功運行上述命令而沒有任何問題。
我剛剛安裝了包含apache-sedona
的requirement.txt
文件並下載了以下兩個 jar 文件:
注意: config.txt
文件不是必需的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.