从 pyspark 中的 HDFS 读取 70gb bson 文件然后将其索引到 Elastic 时出错
Posted
技术标签:
【中文标题】从 pyspark 中的 HDFS 读取 70gb bson 文件然后将其索引到 Elastic 时出错【英文标题】:error while reading a 70gb bson file from HDFS in pyspark and then indexing it to Elastic 【发布时间】:2018-01-17 10:18:58 【问题描述】:我正在尝试将 70gb bson 文件的数据读取为 spark 中的 rdd,然后在经过一些处理后将其索引为弹性。虽然代码对于部分数据(大约 20gb)运行良好,但当我获取整个数据时,出现以下错误:
ERROR BSONFileRecordReader: Error reading key/value from bson file on line 0: Expected size to be 1179749, not 5.
org.bson.BsonSerializationException: Expected size to be 1179749, not 5.
我什至在网上找不到类似的问题。我怎样才能摆脱它?
【问题讨论】:
【参考方案1】:错误在于 bson 文件本身。我已将 70gb bson 文件从一台谷歌服务器传输到另一台,在此期间它已损坏。然后我转移了文件的 tar 形式,代码运行良好。为什么我想到以原始形式传输数据是因为 tar 和 untar 比简单地传输数据要慢。
【讨论】:
以上是关于从 pyspark 中的 HDFS 读取 70gb bson 文件然后将其索引到 Elastic 时出错的主要内容,如果未能解决你的问题,请参考以下文章
PySpark 无法从 hdfs 读取 csv:HiveExternalCatalog 错误
pyspark 中 读取 hive 表,提示 hdfs 中的 nameservice 不识别