#python #pyspark #rename #columnsorting #cdsw
Вопрос:
Я тестирую приведенный ниже «режим if», который кто-то написал по входным значениям, чтобы проверить, работает ли функция должным образом
def modify_col(self, tbl, new_col, mode, left, right):
if mode == 'rename_column':
self.df[tbl] = self.df[tbl].withColumn(new_col, F.col(left))
Я написал приведенный ниже код модульного теста, и моя проблема в том, что функция неверна, или я ввожу неправильные значения, или логика, которую я ввел, неверна: ниже приведено модульное тестирование, которое я провел, и его сбой
def test_modify_rename_column(self):
"""
Test make_new_col function.
"""
test_data= [
{'A': 12,'B': 11},
{'A': 12,'B': 13}
]
expected = [
{'A': 12, 'B': 11,'rename_column_test':1},
{'A': 12, 'B': 13,'rename_column_test':1}
]
self.lib.df['test_data'] = self.spark.createDataFrame(test_data).alias('test_data')
self.lib.modify_col(
tbl = 'test_data',
new_col = 'rename_column_test',
mode = 'rename_column',
left = 'A',
right = 'B'
)
actual = (
self.lib.df['test_data']
.toPandas()
.sort_values(['A'])
.to_dict(orient='records')
)
assert expected == actual
Я получаю сообщение об ошибке:
> AssertionError:
AssertionError Traceback (most recent call last)
in engine
----> 1 t.test_modify_rename_column()
<ipython-input-1-35d82a35840a> in test_modify_rename_column(self)
893 .to_dict(orient='records')
894 )
--> 895 assert expected == actual
896
897
AssertionError:
Мы будем очень признательны за любую помощь, которую вы можете оказать для устранения этой проблемы. Заранее благодарю вас
Комментарии:
1. Что вы сделали, чтобы отладить это? Попробуйте распечатать оба диктанта и посмотрите, в чем, по-видимому, разница