【发布时间】:2021-03-09 22:32:48
【问题描述】:
from unittest import TestCase
from pyspark.sql import SparkSession
from lib.utils import load_survey_df, count_by_country
class UtilsTestCase(TestCase):
@classmethod
def create_testing_pyspark_session(cls):
return SparkSession.builder.master('local[2]').appName('my - local - testing - pyspark - context').getOrCreate()
@classmethod
def SetUpClass(cls) -> None:
cls.spark = cls.create_testing_pyspark_session()
def test_datafile_loading(self):
sample_df = load_survey_df(self.spark, "data/sample.csv")
result_count = sample_df.count()
self.assertEqual(result_count, 9, "Record count should be 9")
def test_country_count(self):
sample_df = load_survey_df(self.spark, "data/sample.csv")
count_list = count_by_country(sample_df).collect()
count_dict = dict()
for row in count_list:
count_dict[row["Country"]] = row["count"]
self.assertEqual(count_dict["United States"], 4, "Count for United States should be 4")
self.assertEqual(count_dict["Canada"], 2, "Count for United States should be 2")
self.assertEqual(count_dict["United Kingdom"], 1, "Count for United States should be 1")
大家好, 你能告诉我这段代码有什么问题吗?我收到以下错误: 错误 回溯(最近一次通话最后): testPartExecutor 中的文件“C:\Users\abc\AppData\Local\Continuum\anaconda3\lib\unittest\case.py”,第 59 行 屈服 运行中的文件“C:\Users\abc\AppData\Local\Continuum\anaconda3\lib\unittest\case.py”,第 628 行 测试方法() 文件“C:\Users\abc\PycharmProjects\HelloSpark\lib\test_utils.py”,第 17 行,在 test_datafile_loading sample_df = load_survey_df(self.spark, "data/sample.csv") AttributeError: 'UtilsTestCase' 对象没有属性 'spark'
【问题讨论】:
-
这是
setUpClass,而不是SetUpClass。