相关疑难解决方法(0)

如何在pyspark.sql.funtions.when()中使用多个条件?

我有一个包含几列的数据框.现在我想从其他2列中派生出一个新列:

from pyspark.sql import functions as F
new_df = df.withColumn("new_col", F.when(df["col-1"] > 0.0 & df["col-2"] > 0.0, 1).otherwise(0))
Run Code Online (Sandbox Code Playgroud)

有了这个,我只得到一个例外:

py4j.Py4JException: Method and([class java.lang.Double]) does not exist
Run Code Online (Sandbox Code Playgroud)

它适用于这样的一个条件:

new_df = df.withColumn("new_col", F.when(df["col-1"] > 0.0, 1).otherwise(0))
Run Code Online (Sandbox Code Playgroud)

有谁知道使用多个条件?

我正在使用Spark 1.4.

python apache-spark

22
推荐指数
2
解决办法
5万
查看次数

如何使用 Apache Spark Dataframes 执行 Switch 语句 (Python)

我正在尝试对我的数据执行一项操作,其中如果某个值符合其中一个条件,则该值将映射到预定值列表,否则映射到失败值。

这将是等效的 SQL:

CASE
            WHEN user_agent LIKE \'%CanvasAPI%\' THEN \'api\'
            WHEN user_agent LIKE \'%candroid%\' THEN \'mobile_app_android\'
            WHEN user_agent LIKE \'%iCanvas%\' THEN \'mobile_app_ios\'
            WHEN user_agent LIKE \'%CanvasKit%\' THEN \'mobile_app_ios\'
            WHEN user_agent LIKE \'%Windows NT%\' THEN \'desktop\'
            WHEN user_agent LIKE \'%MacBook%\' THEN \'desktop\'
            WHEN user_agent LIKE \'%iPhone%\' THEN \'mobile\'
            WHEN user_agent LIKE \'%iPod Touch%\' THEN \'mobile\'
            WHEN user_agent LIKE \'%iPad%\' THEN \'mobile\'
            WHEN user_agent LIKE \'%iOS%\' THEN \'mobile\'
            WHEN user_agent LIKE \'%CrOS%\' THEN \'desktop\'
            WHEN user_agent LIKE \'%Android%\' THEN \'mobile\'
            WHEN user_agent …
Run Code Online (Sandbox Code Playgroud)

python dataframe apache-spark apache-spark-sql pyspark

2
推荐指数
1
解决办法
5706
查看次数