您是否可以帮助从作为参数传递给类构造函数的行中检索值(或者),请提出更好的方法。我的目标是验证所有领域的价值。每个字段都有不同的验证标准。
这就是我在做的事情:
我已经使用HiveContext读取了hive表并保存在数据帧中。我将此数据帧转换为RDD。我将RDD的每一行传递给类构造函数。
class Normalizer():
def __init__(self,val):
logging.info("Normalizer start...%s"%val)
val(在控制台中)看起来像:
[行(id = u' 12',col1 = u' xx',col2 = u' yy',...)]
我为Normalizer中的每个字段编写了一个解析方法。 现在我必须将每个字段值传递给相应的方法并验证数据。
如何获得该领域的每个价值? val.id
不起作用。
或者请建议您是否有更好的方法。
谢谢!!!
答案 0 :(得分:1)
看起来你的行在列表中:
val[0].id
为什么不在这里使用一个功能?您可以插入布尔值并过滤掉错误的行
def normalize(row):
.... validate row.id ...
return Row(validated = is_validated, id=row.id)
myrdd.map(normalize)