在Spark中实施Informatica逻辑

时间:2018-06-24 11:30:12

标签: pyspark apache-spark-sql rdd

我们如何在spark中实现以下逻辑?

如果列值为空,则应返回'' 如果ltrim(rtrim(column))为null,则应返回'' 否则,它应该填充该列的值

2 个答案:

答案 0 :(得分:1)

df=df.withColumn("new_col",when(col("old_col").isNull(),"").otherwise(col("old_col")))

首选DF,而不是rdd,因为它涉及引擎盖下的优化

https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html

答案 1 :(得分:0)

我不是pyspark的人,但是如果您查看下面的Scala和

示例,
  1. 如果我没记错的话,看看pyspark lambda方法和缺少val
  2. 并像在Informatica中进行可重用的转换一样编写自己的def

然后您应该可以继续前进。我提供了两种修整方式,以及RDD中的贴图。

3行显示一般原理:

protected void Application_Start()
{
    // Add this code, if not present.
    AreaRegistration.RegisterAllAreas();

    // ...
}