pyspark或python连接Elasticsearch

#
from pyspark import SparkConf

class EsSparkClient:
    def __init__(self,host,port,username=None,password=None):
        self.host = host
        self.port = port
        self.usename = usename
        self.password = password


    def Pyspark_Read(self,index,query=None):
        es_read_conf = {
            "es.nodes": self.host,
            "es.port": self.port,
            "es.net.http.auth.user": self.username,
            "es.net.http.auth.pass": self.password,
            "es.resource": index,
            "es.query": query
        }
        es_rdd = SparkConf.newAPIHadoopRDD(
            inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat",
            keyClass="org.apache.hadoop.io.NullWritable",
            valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable",
            conf=es_read_conf)
        return es_rdd


    def Pyspark_Wrinfo(self,rdd,index,id=None):
        # 保存到ES
        es_write_conf = {
            "es.nodes": self.host,
            "es.port": self.port,
            "es.net.http.auth.user": self.username,
            "es.net.http.auth.pass": self.password,
            "es.resource": index,
            "es.mapping.id": id
        }
        rdd.saveAsNewAPIHadoopFile(
            path='-',
            outputFormatClass="org.elasticsearch.hadoop.mr.EsOutputFormat",
            keyClass="org.apache.hadoop.io.NullWritable",
            valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable",
            conf=es_write_conf)

python连接es

#
from elasticsearch import Elasticsearch

class EsClient:
    def __init__(self,host,port,username=None,password=None):
        self.host = host
        self.port = port
        self.usename = usename
        self.password = password
  

    def Es_Test(self):
        esClient = Elasticsearch([{"host": self.ip, "port": self.port}], http_auth=(self.username, self.password))
        return esClient

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值