當我試圖讀取數據從elasticsearch火花sql,它拋出一個錯誤
RuntimeException:錯誤編碼:. lang。RuntimeException: scala.collection.convert。包裝JListWrapper美元並不是一個有效的外部類型模式的字符串
引起的:RuntimeException: scala.collection.convert。包裝JListWrapper美元並不是一個有效的外部類型模式的字符串
它顯示像模式生成收到elasticsearch火花與數據不匹配。
你能讓知道我可以從彈性通過csv,讀取數據或excel格式嗎?
你從彈性讀取數據搜索如何?
你從ES在JSON或CSV格式導出數據,然後通過激發閱讀或直接連接到ES ?
如果你直接連接,那麼您可以使用下麵的代碼片段:
df =(火花。讀.format (“org.elasticsearch.spark。sql”) .option (“es。節點”,主機名).option (“es。端口,端口).option (“es.net.ssl ssl) .option (“es.nodes.wan。隻有”、“真正的”).load (f“索引/{指數}”))顯示(df)
如果你在說出口JSON格式使用彈性轉儲服務然後使用下麵的代碼片段:
df = spark.read.json (< dbfs_path > / * . json) .select (“_id”、“_source *”)。
這是因為您的文件導出如下:
_id:字符串_index:字符串_score:長_source: struct col_1: < data_type > col_2: < data_type > col_3: < data_type > col_4: < data_type > col_n: < data_type >
你所有的列都_source內嵌套。
希望這個有幫助。
嗨@Aman Sehgal
我想讀彈性數據通過直接連接到它。
我用下麵的代碼片段
df = spark.read.format (“org.elasticsearch.spark.sql”)
.option (“es.read。元數據”、“假”)
.option (“spark.es.nodes.discovery”,“真正的”)
.option (“es.net.ssl”,“假”)
.option (“es.index.auto。創建”、“真正的”)
.option (“es.field.read.empty.as。空”、“無”)
.option (“es.read.field.as.array.exclude”,“真正的”)
.option(“火花。序列化器”、“org.apache.spark.serializer.KryoSerializer”)
.option (“es。節點”、“*”)
.option (“es.nodes.wan。隻有”、“真正的”)
elasticUsername .option (“es.net.http.auth.user”)
elasticPassword .option (“es.net.http.auth.pass”)
.option (“es。資源”、“indexname”)
但我獲得運行時錯誤顯示
RuntimeException:錯誤編碼:. lang。RuntimeException: scala.collection.convert。包裝JListWrapper美元並不是一個有效的外部類型模式的字符串
引起的:RuntimeException: scala.collection.convert。包裝JListWrapper美元並不是一個有效的外部類型模式的字符串
你有解決方案嗎?
注意:我認為錯誤是由於模式所產生的火花是不匹配的模式出現在有彈性的。
謝謝