mongodb - 有什么方法可以与 Pyspark 一起使用来将 MongoDB 集合作为 RDD 而不是作为数据帧读取?
问题描述
我使用 Pyspark 访问 Mongo。我的任务很简单:将 Mongo 导出到 hdfs。这是我的代码:
spark = SparkSession \
.builder.appName("Mongodb-Exporter") \
.config("spark.mongodb.input.uri", "xxx") \
.config("spark.mongodb.input.database","xx") \
.config("spark.mongodb.input.collection","xx") \
.getOrCreate()
df = spark.read.format("com.mongodb.spark.sql.DefaultSource").load()
df.write.format("json").save(sys.argv[1])
spark.stop()
在我遇到这个问题之前,一切都运行良好:
com.mongodb.spark.exceptions.MongoTypeConversionException:
Cannot cast STRING into a ArrayType(StringType,true) (value: BsonString{value=''})
发生这种情况是因为我的集合有一个具有多种值的字段,例如
document1:{"name":"ross"};
document2:{"name":["joey","monica"]}
我感到很困惑。有什么方法可以阅读 Mongo 并返回 RDD?我不想要数据框,我不在乎它的架构,但似乎数据框很在意。
PS:我知道 Java 或 Scala 可以做到这一点,但我应该如何使用 Pyspark?我是StackOverflow的新手,希望有人能帮助我,谢谢!
解决方案
推荐阅读
- web-scraping - 使用什么:在抓取 Linkedin 时使用 Xpath 或 CSS 选择器?
- javascript - 在打字稿中创建动态对象
- r - ggplot2 中的“EB Garamond”字体
- javascript - 在订阅中使用 ngbDatePicker 设置表单控件
- sql - 从另一个表更新行的存储过程
- amazon-web-services - 在 AWS 中更改根卷大小后,更改未反映在 ubuntu 机器上
- php - Magento 2安装claue主题后加载主页时出错
- hover - Plotly,更改悬停文本
- excel - 使用 VBA 在 XML 树中查找父节点的位置
- python - 没有错误消息...但情节没有被绘制