[PYTHON] PySpark 1.5.2 + Elasticsearch 2.1.0 Procédure d'installation et exécution

introduction

--Je veux toucher Elasticsearch de pyspark

environnement

Installation d'étincelles

Omettre. Spark 1.6 est sorti aujourd'hui, mais avec la version 1.5.2.

Télécharger Elasticsearch + Hadoop

Il suffit de télécharger à partir de la page officielle et de décompresser

$ wget http://download.elastic.co/hadoop/elasticsearch-hadoop-2.2.0-beta1.zip
$ unzip elasticsearch-hadoop-2.2.0-beta1.zip

Lancer la recherche pyspark + élastique

/usr/local/share/spark/bin/pyspark --master local[4] --driver-class-path=elasticsearch-hadoop-2.2.0-beta1/dist/elasticsearch-spark_2.11-2.2.0-beta1.jar

Génération RDD

>>> conf = {"es.nodes" : "XXX.XXX.XXX.XXX:[port]", "es.resource" : "[index name]/[type]"}
>>> rdd = sc.newAPIHadoopRDD("org.elasticsearch.hadoop.mr.EsInputFormat","org.apache.hadoop.io.NullWritable", "org.elasticsearch.hadoop.mr.LinkedMapWritable", conf=conf)

opération de base

>>> rdd.first()
>>> rdd.count()
>>> rdd.filter(lambda s: 'aaa' in s).count()

Map / Reduce

#Comptez le nombre d'enregistrements par nom
counts = rdd.map(lambda item: item[1]["name"])
counts = counts.map(lambda ip: (ip, 1))
counts = counts.reduceByKey(lambda a, b: a+b)

#Courir
>>> counts.collect()

Enregistrer dans ES

rdd.saveToEs('test/docs')

J'étais accro à

<snip>
File "/usr/local/share/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD.
: org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: [GET] on [_nodes/http] failed; server[hostname/XXX.XXX.XXX.XXX:Ports] returned [400|Bad Request:]
<snip>

référence

Spark

Elasticsearch

Recommended Posts

PySpark 1.5.2 + Elasticsearch 2.1.0 Procédure d'installation et exécution
À propos des erreurs lors de l'installation et de l'exécution de PyInstaller
Procédure d'installation de Pylearn 2
Procédure d'installation de PostgreSQL 10.0
procédure d'installation blockdiag
[Procédure d'installation Ansible] De l'installation à l'exécution du playbook
Procédure d'installation de l'AWS CLI
Mémo de procédure d'installation de django-debug-toolbar
installation de jupyter et pandas
Procédure d'installation de l'environnement Anaconda3
Procédure d'installation de l'environnement Scrapy
[Python] Chapitre 01-02 À propos de Python (Exécution et installation de l'environnement de développement)
Procédure d'installation pour Python et Ansible avec une version spécifique
Procédure d'installation hors ligne pour openpyxl
Procédure d'installation de Python CMS Mezzanine
Procédure d'installation de Python 3.6 [pour Windows]
Installation de Python et grammaire de base
Vérification de l'installation et du fonctionnement de Django
Problèmes d'installation et contre-mesures
Paramètres d'installation et de démarrage automatique de Tomcat
Installation source et installation de Python
Installation de Python (Python 3.7.7) et grammaire de base
Premiers pas avec Poetry De l'installation à l'exécution et à la gestion des versions
Procédure d'installation + utilisation de "virtualenv" et "pythonz" dans l'environnement Mountain Lion