我正在证明Glue可以替代我们的ETL管道,并在开发转换时通过REPL流程的速度,性能和交互性来抵制一些潜在的交易突破者。
环境:
观察:
在新列中创建直接映射并计算该数据集上的行比我期望的要长:
%pyspark
def normalize_fields(dynamicRecord):
# medium
if dynamicRecord['app_id'] is None:
dynamicRecord['medium'] = 2
elif dynamicRecord['app_id'].lower() == 'unknown' or dynamicRecord['app_id'].lower() == '_unknown':
dynamicRecord['medium'] = 0
elif dynamicRecord['app_id'] is not None:
dynamicRecord['medium'] = 1
else:
dynamicRecord['medium'] = 0
calculated1 = Map.apply(frame=impressions_datasource0,
f=normalize_fields, transformation_ctx="calculate1")
calculated1.count()
4248637L 行
(花费21分41秒。最后一次匿名更新是在2019年2月11日上午10:49:46。)
问题:
在Zeppelin REPL中工作时,性能是否达到我们期望的性能?如果没有,关于改善此性能的任何建议?