2017-01-13 9 views
0

私はpyspark(1.6)とelasticsearch-hadoop(5.1.1)を使用しています。ここでes_read_confはSC SparkContextオブジェクトとして、私のESクラスタのちょうど辞書ですrddをヌルのデータフレームに変換する

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) 

:私は経由RDD形式にelasticsearchから自分のデータを取得しています。これは正常に動作し、私はrddオブジェクトをうまく取得します。

私は

df = es_rdd.toDF() 

を使用してデータフレームにこれを変換したいが、私はエラーを取得:

sampleSizeが同じエラーになりtoDF方法を与える
ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling 

。 pysparkが各フィールドのタイプを判別することができないので、これが発生していると私は理解しています。私はelasticsearchクラスターにすべてnullであるフィールドがあることを知っています。

これをデータフレームに変換する最良の方法は何ですか?

答えて

1

あなたが変換しているSparkタイプのデータを伝える最も良い方法。 5番目の例のcreateDataFrameのドキュメント(StructTypeが入っているもの)

関連する問題