我想讀一些三角洲磚(蜂巢metastore)的sql數據端點使用pyspark,雖然這樣做後,我遇到的所有表的值取相同列名。
甚至當我試圖展示它給了我錯誤的數據如果列類型不是字符串。
錯誤:
org.apache.spark。SparkException:工作階段失敗而終止:任務0階段13.0失敗了4次,最近的失敗:在舞台上失去了任務0.3 13.0 (TID 34)(10.139.64.4執行人司機):java.sql。(JDBC) SQLDataException(磚):將值轉換為BigDecimal(10140)錯誤。
jdbc_url = " jdbc:磚:/ / XXXX: 443 /違約;運輸方式= http; ssl = 1; httpPath = XXXX;密碼= <拍牌> " table_name =“XXXX”df = spark.read.format (jdbc) \ .option (“url”, jdbc_url) \ .option(“數據表”,table_name) \ .option(“司機”,“com.databricks.client.jdbc.Driver”) \ .load () df.printSchema輸出()> > > > > > > > > > > >根|——描述:字符串(nullable = true) |——卷:雙(nullable = true) df.show () > > > > > > > > > > > > org.apache.spark輸出。SparkException:工作階段失敗而終止:任務0階段0.0失敗了4次,最近的失敗:在舞台上失去了任務0.3 0.0 (TID 3)(10.139.64.4執行人司機):java.sql。(JDBC) SQLDataException(磚):將值轉換為雙(10140)錯誤。df.select(“描述”)。虛假的表演(10日)輸出> > > > > > > > > > > > + - - - - - - - - - - - - + | | +描述- - - - - - - - - - - - | + |描述描述| | | |描述描述| | |描述| | |描述描述| | | |描述描述| | | | +描述- - - - - - - - - - - - +隻顯示前十行
注意:東西保存工作文件,如果我使用“sql。使用“連接”和消費數據指針”。
但在火花JDBC康涅狄格州,我麵臨這個問題。有人能幫我嗎?
你包括你的特定數據庫的JDBC驅動程序的火花類路徑?
postgres的例子:
/ bin / spark-shell——driver-class-path postgresql-9.4.1207。罐子,罐子postgresql-9.4.1207.jar
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
PS。我剛注意到你想從磚讀取SQL,而不是某種數據庫。
你可以嚐試使用另一個JDBC URL(2.6.22或更早)?
也不確定您所使用的驅動程序是正確的。地方我使用com.simba.spark.jdbc.Driver
或下載JDBC驅動程序並將其添加到火花類路徑中。
嗨@Swostiman Mohapatra,
使用下麵的代碼來訪問數據使用JDBC -
皮普從磚導入sql導入操作係統安裝databricks-sql-connector康涅狄格州= sql。連接(server_hostname = < Host_name >, http_path = <路徑>,access_token = < access_token >)光標= conn.cursor()遊標。執行(SELECT * from P123)顯示(cursor.fetchall ()) cursor.close () conn.close ()