【问题标题】:Can we use a Pandas function in a Spark DataFrame column ? If so, how?我们可以在 Spark DataFrame 列中使用 Pandas 函数吗?如果是这样,怎么做?
【发布时间】:2016-06-10 21:46:01
【问题描述】:

我有一个名为“pd_df”的熊猫数据框。

我想修改它的列,所以我这样做:

    import pandas as pd

    pd_df['notification_dt'] = pd.to_datetime(pd_df['notification_dt'], format="%Y-%m-%d")

有效。

在同一个数据库上,我创建了一个名为“spark_df”的 spark 数据框

我希望在它的列上使用相同的函数 (pd.to_datatime) 来执行相同的操作。所以我就这么做了。

    from pyspark.sql.functions import UserDefinedFunction

    from pyspark.sql.types import TimestampType

    udf = UserDefinedFunction(lambda x: pd.to_datetime(x, format="%Y-%m-%d"), TimestampType())

    spark_df2 = spark_df.withColumn("notification_dt1", (udf(spark_df["notification_dt"])))

据我说,它应该可以工作。然而在

   spark_df.show()

大约一分钟后我遇到以下错误:

【问题讨论】:

    标签: python pandas apache-spark pyspark


    【解决方案1】:

    所以,解决了。

     udf = UserDefinedFunction(lambda x: pd.to_datetime(x, format="%Y-%m-%d"), TimestampType())
    

    应该是

     udf = UserDefinedFunction(lambda x: str(pd.to_datetime(x, format="%Y-%m-%d")), TimestampType())
    

    基本上是无法将结果转换为 TimestampType()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-21
      • 2012-04-08
      • 2023-04-10
      • 2021-06-30
      • 2017-11-14
      • 2017-09-26
      • 2016-06-04
      • 1970-01-01
      相关资源
      最近更新 更多