繁体   English   中英

pyspark:将RDD作为参数传递给类

[英]pyspark: Passing RDD as parameter to a Class

您能否帮助从作为参数传递给类构造函数的行中检索值(或),请提出一种更好的方法。 我的目的是验证所有字段的价值。 每个字段都有不同的验证标准。

这就是我在做什么:

我已经使用HiveContext读取了蜂巢表并保存在数据框中。 我将此数据帧转换为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不起作用。

或者,如果您有更好的方法,请提出建议。

谢谢!!!

  • 看起来您的行在列表内:

      val[0].id 
  • 为什么不在这里使用功能呢? 您可以插入布尔值并过滤掉错误的行

     def normalize(row): .... validate row.id ... return Row(validated = is_validated, id=row.id) myrdd.map(normalize) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM