J'utilise pyspark (1.6) et elasticsearch-hadoop (5.1.1). Je reçois mes données de ElasticSearch dans un format RDD via:Pyspark convertissant rdd en données avec des zéros
es_rdd = sc.newAPIHadoopRDD(
inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat",
keyClass="org.apache.hadoop.io.NullWritable",
valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable",
conf=es_read_conf)
Ici es_read_conf est juste un dictionnaire de mon groupe d'ES, comme sc l'objet SparkContext. Cela fonctionne bien et j'obtiens les objets rdd bien.
Je voudrais convertir en une trame de données en utilisant
df = es_rdd.toDF()
mais je reçois l'erreur:
ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling
Donner la méthode toDF un des résultats sampleSize dans la même erreur. D'après ce que je comprends, cela se produit parce que pyspark est incapable de déterminer le type de chaque champ. Je sais qu'il y a des champs dans mon cluster elasticsearch qui sont tous null.
Quelle est la meilleure façon de le convertir en données?