1. 程式人生 > >spark 讀取elasticsearch中資料不完整問題

spark 讀取elasticsearch中資料不完整問題

使用spark讀取elasticsearch中的資料,使用es提供的api來進行,

sc.esRDD("logstash").values

官方網站也是這種方式讀取資料的,但是我測試的時候有時候會出現讀取資料不完整的情況,比如本來讀取的資料是這樣的

Map(msg -> 2016-03-18 15:24:14 System_ID=ruijie sp_malware:Client_IP=172.40.1.100 Server_IP=61.4.184.50 URL=app.weather.com.cn/dataService/appManage file_name=web scanner2,virus_name=CIH3 Action=block_log Method=POST, srcip -> 172.40.1.100
但是我讀取的資料卻是這樣的
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:03 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:04 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:04 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:04 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:04 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:05 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:05 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:05 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:05 CST 2017)
Map(@version -> 1, @timestamp -> Wed Jun 28 14:36:05 CST 2017)
看來這種讀資料的方式是有問題的,後來就改成讀取方式為下面這種方式,加上type

sc.esRDD("logstash/count").values

然後問題解決,