python - pytest monkeypatch:如何模拟 spark.sql("query").coalesce(1).write.csv(path, header=True)
问题描述
我编写了 pyspark 代码,其中涉及收集数据并转换为 CSV 操作。我可以使用以下补丁模拟collect()
方法:spark.sql
class MockSpark:
@staticmethod
def collect(*args, **kwargs):
return []
def mock_return(*args, **kwargs):
return MockSpark(*args, **kwargs)
monkeypatch.setattr(SparkSession, "sql", mock_return)
但是,我在模拟下面的语句时遇到了麻烦,因为它涉及到调用write.csv()
:
spark.sql("select * from temp_table").coalesce(1).write.csv(path, header=True)
而且由于调用write.csv()
我不能coalesce
以类似的方式模拟collect
调用。
有没有办法做到这一点?
解决方案
推荐阅读
- javascript - 从 Firebase 数据库中删除值
- ruby-on-rails - 如何在没有设计的情况下使用 ActiveAdmin 实现自己的身份验证?ActionView::Template::Error: 未定义的方法
- javascript - nan 预测值时 tensorflowjs
- shell - crontab linux中的注释行
- html - 使用 CSS 在悬停时显示元素
- android - 如何为 mpandroidchart 库自定义图表标签
- java - 断言无法解决
- reporting-services - SSRS 中的复合数据过滤器
- php - 无法检查 PHP 到数据库
- jquery - 使用 jQuery 从表单字段中提取值