使用以下 pyspark 代码从 Azure Synapse 笔记本写入 Kusto 时。如果表已经存在,我会得到一个异常。
df.write \
.format("com.microsoft.kusto.spark.synapse.datasource") \
.option("spark.synapse.linkedService", "<link service name>") \
.option("kustoDatabase", "<Database name>") \
.option("kustoTable", "<Table name>") \
.option("tableCreateOptions","CreateIfNotExist") \
.mode("Append") \
.save()
例外:
java.lang.ClassCastException: java.lang.String cannot be cast to org.json.JSONObject
at com.microsoft.kusto.spark.datasink.KustoWriter$.$anonfun$write$3(KustoWriter.scala:69)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286)
at scala.collection.Iterator.foreach(Iterator.scala:943)
at scala.collection.Iterator.foreach$(Iterator.scala:943)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
突触池中的版本 火花3.3 Python 3.10 斯卡拉 2.12.17 Java 11
从错误消息来看,您的数据框似乎有一列包含字符串数据,并且您正在尝试将该列加载到 Kusto 表列中,其中其数据类型是对象类型。
检查数据框和 Kusto 表中的列数据类型并确保 他们匹配然后执行写操作。