Spark应用程序日志解决方案

时间:2015-07-24 15:16:49

标签: amazon-web-services amazon-s3 apache-spark emr

我有一个使用Python的Spark(1.3.1)应用程序,在YARN,EMR集群上运行并使用类似S3的存储。
我的应用程序在RDD中转换CSV文件并执行正则表达式转换(ETL)。 我们需要创建一个级别行日志解决方案,以便捕获错误并识别源问题(记录和列)。 我对此一无所知。

def lineMap(column):
   return (
        column[1],
        column[2]
   )

fileContent = sc.textFile(s3FilePathInput)

RDDcru = (fileContent
                .map(lambda x : x.split(";"))
                .map(lineMap)
            )


我尝试使用logging default python lib在lineMap函数上创建一个try-catch块。 我也尝试过,创建一个新的SparkContext,在S3上写一个文件日志(在catch块上)

全部失败......

感谢和抱歉我的英语不好:)

1 个答案:

答案 0 :(得分:0)

此案例的解决方案是创建一个新的日志字段。

def etl_func(col,log):
   try:
      (code)
    except Exception,e:
      log.append(str(e))

 def lineMap(column):
   log = []
   return (
        etl_func(column[1],log),
                 column[2],
                 log
   )