我正在使用es.read.metadata=True
的读取选项从Elasticsearch索引读取PySpark SQL数据框。我想按元数据字段上的条件过滤数据,但是得到一个空结果,尽管应该有结果。有可能获得实际结果吗?
当我在数据帧上使用limit
时,即使有很大的数字,甚至比数据帧的大小都大,我的确得到了结果。
此外,当使用其他非_metadata
相关字段时,我确实得到了结果。
例如:
df.where(df._metadata._score > 1.0).select(df._metadata._id).show()
结果为空:
+--------------+
|_metadata[_id]|
+--------------+
+--------------+
但是使用limit
时:
df.limit(1000000).where(df._metadata._score > 1.0).select(df._metadata._id).show()
结果不为空
+--------------------+
| _metadata[_id]|
+--------------------+
|cICqm2gBHl8Vy6RZyu_L|
+--------------------+