spark-sql 읽기elasticsearch의 구덩이

2705 단어
//  elasticsearch   
ds.write
      .format("org.elasticsearch.spark.sql")
      .option("es.nodes.wan.only", "true")
      .option("es.mapping.id", "_id")
      .option("es.mapping.exclude", "_id")
      .option("es.nodes", host)
      .option("es.port", port)
      .option("es.update.script.lang","painless")
      .option("es.update.script.inline",script)  // es.update.script.inline 6.0       
      .option("es.update.script.params", params)
      .option("es.write.operation", "upsert")
      .option("es.batch.write.retry.count", 3)
      .option("es.update.retry.on.conflict", 3)
      .option("es.mapping.exclude", "_id")
      .mode("append")
      .save(index_name)
//   elasticsearch     
val ds = spark.read
      .format("org.elasticsearch.spark.sql")
      .option("es.read.metadata", "true") //        
      .option("es.read.metadata.field", "_metadata")
      .option("es.nodes.wan.only","true") //        
      .option("pushdown", "true")
      .option("es.port",port)
      .option("es.net.ssl","false")
      .option("es.nodes", host)
      .option("query", query) //      dsl  
      .option("es.read.field.include", includeField) //                   
      .option("es.read.field.as.array.include", arrIncludeField) //                ,      
      .option("es.mapping.date.rich", "false")
      .load(index_name)

1、es.nodes.wan.only
만약spark 프로그램이 당신의elasitcsearch와 같은 네트워크에 있을 때 이것을 추가하지 않으면 문제가 없습니다.그러나 같은 구간, 예를 들어 공중망 위에 있지 않으면 요청이 실패한 오류를 보고할 수 있다.
2、es.update.retry.on.conflict
동시 업데이트일 경우 같은 기록에 업데이트될 때 충돌을 보고하기 때문에 이 파라미터를 설정해야 합니다
3、es.update.script.inline
elasticsear의spark 플러그인은 6.0버전 이전에es였습니다.update.script 이 매개 변수는 내가 사용하는 것이 5이기 때문이다.x버전이라서 에스를 썼어요.update.script 매개 변수입니다. 그러나 플러그인 형식의 데이터 구조를 업데이트할 때 scala로 전환할 수 없습니다.tuple2의 오류,es만 사용하면 됩니다.update.script.라인 이 매개 변수는 해결할 수 있지만, 이 매개 변수를 사용하여es7을 업데이트합니다.0시에도 이 오류를 보고합니다.https://discuss.elastic.co/t/upsert-nested-fields-with-spark/128813
spark on elasticsearch 구성 항목 링크를 첨부합니다.https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html
4、spark-sql의udf에서 방송 변수를 얻는 문제
오늘 만난 것은 다음과 같다.https://segmentfault.com/q/1010000008010132이 문제는udf에서 방송 변수의value 획득 값을 호출하여 빈 바늘을 보고, 나중에udf의 클래스에서 방송 변수를 구성원 변수로 얻었다.udf의 함수 클래스 파일은 각 excutor 노드에 나누어 호출되기 때문에 구성된 방송 변수의 구성원 변수는 각excutor에서도 순조롭게 얻을 수 있습니다.

좋은 웹페이지 즐겨찾기