0
我正在使用pyspark(1.6)和elasticsearch-hadoop(5.1.1)。我從elasticsearch得到我的數據轉換成RDD格式通過:Pyspark將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)
這裏es_read_conf只是我的ES集羣的字典,如SC的SparkContext對象。這工作正常,我得到rdd對象罰款。
我想將其轉換爲使用
df = es_rdd.toDF()
一個數據幀,但我得到的錯誤:
ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling
給toDF方法的採樣大小會導致同樣的錯誤。據我所知,這是發生,因爲pyspark無法確定每個領域的類型。我知道我的elasticsearch集羣中有全部爲空的字段。
將此轉換爲數據框的最佳方法是什麼?