首先逻辑测试在代码层进行。查看开发的SQL代码并进行验证,这样才能确保内部的逻辑的正确性,从而验证:
1)逻辑是否完整
2)利用逆推思维,从where验证SQL 的正确性
开发工具可以在本地也可以在云端,但是在测试前要确保拿到最新的代码。
因为本地连接问题,目前我的测试是在databricks进行连接测试,从而加速测试进度。
测试步骤:
1. 连接获取我要使用的数据表,使用 spark.sql() 来执行SQL queries:
data_df = spark.sql("""select * from table A""")
https://spark.apache.org/docs/latest/sql-programming-guide.html
2. 转化获取的数据为Pandas, 从而对获取的dataFrame数据进行验证:
df1 = data_df.toPandas()
3. Test case 准备:
其中使用 assert 来验证数据;
使用以下方法重用方法,并批量执行case:
test_logics = [fun1,fun2,..]
for func in test_logics:
func(df1)
func(df2)