--OSS entwickelt von M3 und fringe81 --Wraps luigi wurde von Spotify entwickelt, um die Verwendung zu vereinfachen. Insbesondere die Menge des zu schreibenden Codes wird reduziert.
class DataTask(gokart.TaskOnKart):
task_namespace = 'sample'
def run(self):
df = pd.DataFrame(dict(user=[1, 2], item=['a', 'b']))
self.dump(df)
class TaskA(gokart.TaskOnKart):
task_namespace = 'sample'
def requires(self):
return DataTask()
def run(self):
df = self.load_data_frame()
#Wenn df leer ist`KeyError`Tritt ein.
df['user'] = df['user'].apply(lambda x: f'user_{x}')
self.dump(df)
if __name__ == '__main__':
gokart.run()
--test-run-pandas
und --test-run-namespace = sample
hinzu.$ python main.py sample.TaskA --local-scheduler --test-run-pandas --test-run-namespace=sample
--Botschaft
gokart test results:
status=OK; namespace=sample; name=DataTask; id=10f87ddcf3df71d786a023ae5e0bbc98;
status=NG; namespace=sample; name=TaskA; id=44e9690a4d2182a9bed6b6d9730291bd; message=<class 'KeyError'>: user
--Überprüfen Sie, ob sich der Pandas-Typ aufgrund einer unbeabsichtigten Operation geändert hat.
gokart.PandasTypeConfig
'und definieren Sie die Regeln im Namespace.class SamplePandasTypeCheck(gokart.PandasTypeConfig):
task_namespace = 'sample'
@classmethod
def type_dict(cls) -> Dict[str, Any]:
return {'user': int}
class DataTask(gokart.TaskOnKart):
task_namespace = 'sample'
def run(self):
df = pd.DataFrame(dict(user=[1, 2], item=['a', 'b']))
self.dump(df)
class TaskA(gokart.TaskOnKart):
task_namespace = 'sample'
def requires(self):
return DataTask()
def run(self):
df = self.load_data_frame()
#Der Benutzertyp wurde von int in str geändert.
df['user'] = df['user'].apply(lambda x: f'user_{x}')
self.dump(df)
if __name__ == '__main__':
gokart.run()
$ python main.py sample.TaskA --local-scheduler
--Botschaft
gokart.pandas_type_config.PandasTypeError: expected type is "<class 'int'>", but "<class 'str'>" is passed in column "user".
...
===== Luigi Execution Summary =====
Scheduled 2 tasks of which:
* 1 ran successfully:
- 1 sample.DataTask(...)
* 1 failed:
- 1 sample.TaskA(...)
This progress looks :( because there were failed tasks
===== Luigi Execution Summary =====
Recommended Posts