微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在本地开发和测试python转换代码?

如何解决如何在本地开发和测试python转换代码?

鉴于输入数据集适合本地计算机的内存,建议在本地开发和测试python转换代码的推荐方法是什么?

解决方法

不需要模拟模拟包的最简单方法就是使用pyspark函数将逻辑提取到纯python中,该函数接收数据帧作为输入并返回数据帧。

即:

# yourtransform.py
from my_business_logic import magic_super_complex_computation

@transform_df(
   Output("/foo/bar/out_dataset"),input1=Input("/foo/bar/input1"),input2=Input("/foo/bar/input2"))
def my_transform(input1,input2):
   return magic_super_complex_computation(input1,input2)

您现在可以将magic_super_complex_computation导入测试并仅使用pyspark对其进行测试。

即:

from my_business_logic import magic_super_complex_computation


def test_magic_super_complex_computation(spark_context):
    df1 = load_my_data_as_df(spark_context,"input1")
    df2 = load_my_data_as_df(spark_context,"input2")

    result = magic_super_complex_computation(input1,input2).collect()
    assert len(result) == 123

请注意,这要求您在pytest(或您使用的任何测试框架)中提供有效的spark上下文作为固定装置

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。