我有一个数据框,列为String.我想在PySpark中将列类型更改为Double类型.
以下是方式,我做了:
toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))
Run Code Online (Sandbox Code Playgroud)
只是想知道,这是通过Logistic回归运行的正确方法,我遇到了一些错误,所以我想知道,这是问题的原因.
假设您处理时间序列数据。您想要的结果依赖于具有不同窗口规格的多个窗口函数。结果可能类似于单个火花列表达式,例如间隔标识符。
通常,我不使用df.withColumn链式/堆栈列表达式来存储中间结果,并且相信 Spark 会找到最有效的 DAG(在处理 DataFrame 时)。
但是,在以下示例(PySpark 2.4.4 独立版)中,存储中间结果df.withColumn降低了 DAG 的复杂性。让我们考虑以下测试设置:
import pandas as pd
import numpy as np
from pyspark.sql import SparkSession, Window
from pyspark.sql import functions as F
spark = SparkSession.builder.getOrCreate()
dfp = pd.DataFrame(
{
"col1": np.random.randint(0, 5, size=100),
"col2": np.random.randint(0, 5, size=100),
"col3": np.random.randint(0, 5, size=100),
"col4": np.random.randint(0, 5, size=100),
}
)
df = spark.createDataFrame(dfp)
df.show(5)
Run Code Online (Sandbox Code Playgroud)
import pandas as pd
import numpy as np
from pyspark.sql import SparkSession, Window …Run Code Online (Sandbox Code Playgroud) python dataframe directed-acyclic-graphs apache-spark pyspark
我是 PySpark 的新手,我发现有两种方法可以在 PySpark 中选择列,即使用“.select()”或“.withColumn()”。
据我所知,“.withColumn()”的性能较差,但除此之外,我很困惑为什么有两种方法可以做同样的事情。
那么我什么时候应该使用“.select()”而不是“.withColumn()”?
我用谷歌搜索过这个问题,但没有找到明确的解释。
我有一个条件,我必须在一年的 5 个月内添加 5 列(到现有的 DF)。
现有的 DF 是这样的:
EId EName Esal
1 abhi 1100
2 raj 300
3 nanu 400
4 ram 500
Run Code Online (Sandbox Code Playgroud)
输出应如下所示:
EId EName Esal Jan Feb March April May
1 abhi 1100 1100 1100 1100 1100 1100
2 raj 300 300 300 300 300 300
3 nanu 400 400 400 400 400 400
4 ram 500 500 500 500 500 500
Run Code Online (Sandbox Code Playgroud)
我可以用 withColumn 一一完成,但这需要很多时间。
有没有办法可以运行一些循环并继续添加列,直到我的条件用尽。
提前谢谢了。