我試圖id通過使用讀取我的表中的最大值
_select_sql = f"(SELECT MAX(id) FROM {tablename})"
highest_id = spark.read.jdbc(url, table=_select_sql, properties=properties)
執行此操作后,我得到:
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'WHERE'
當我嘗試使用highest_id = spark.read.jdbc(url, table=tablename, properties=properties)evrything讀取所有資料時很好。
你知道哪里會出錯嗎?
編輯:
更改為后
_select_sql = f"(SELECT MAX(id) FROM {tablename}"
我正進入(狀態:
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '0'.
uj5u.com熱心網友回復:
您正在使用查詢作為表名 - 這將不起作用。您需要改用該query選項(請參閱檔案):
highest_id = spark.read.format("jdbc") \
.option("url", jdbcUrl) \
.option("query", f"SELECT MAX(id) FROM {tablename}") \
.load()
uj5u.com熱心網友回復:
我通過使用解決了這個問題
_select_sql = f"(SELECT TOP(1) id FROM {tablename} ORDER BY id DESC)"
無論如何感謝亞歷克斯奧特,它只能以他提供的方式作業。不知道為什么因為某些訊息來源告訴這應該以類似的方式作業:
df = spark.read.jdbc(url = url, table = query, properties = properties)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322619.html
上一篇:從多個檔案中讀取Spark資料幀
