如何使用 Spark 数据框中的 lit 在列中插入值?
Posted
技术标签:
【中文标题】如何使用 Spark 数据框中的 lit 在列中插入值?【英文标题】:How to insert value in a column using the lit in Spark dataframe? 【发布时间】:2020-12-03 06:55:34 【问题描述】:我有 Spark 数据框。我正在尝试使用lit
在新列中插入值,但没有插入该值。
例子:
我正在尝试以下代码:
df:
+--------------------+----------+---------+
| Programname|Projectnum| Drug|
+--------------------+----------+---------+
|Non-Oncology Phar...|SR0480-000|Invokamet|
+--------------------+----------+---------+
from pyspark.sql.functions import lit
df=df.withColumn("CDE_rec_crdt_dt", lit([str(x.CDE_rec_crdt_dt) for x in df_active.select('CDE_rec_crdt_dt').distinct().collect()][0]))
The value of -
[str(x.CDE_rec_crdt_dt) for x in df_active.select('CDE_rec_crdt_dt').distinct().collect()][0] ---'2020-12-03'
期望的输出:
df:
+--------------------+----------+---------+----------------+
| Programname|Projectnum| Drug|CDE_rec_crdt_dt |
+--------------------+----------+---------+----------------+
|Non-Oncology Phar...|SR0480-000|Invokamet|2020-12-03 |
+--------------------+----------+---------+----------------+
【问题讨论】:
value is not inserting
是什么意思?你遇到了什么错误?
df_active 的值是多少,为什么要收集它?也许您应该加入该数据框?
【参考方案1】:
val = str(df_active.select('CDE_rec_crdt_dt').distinct().collect()[0][0])
df = df.withColumn(
"CDE_rec_crdt_dt",
lit(val)
)
【讨论】:
还是一片空白。 你能告诉我print(df_active.select('CDE_rec_crdt_dt').distinct().collect()[0][0])
的输出吗?
>>''2020-12-03"
或者试试df.crossJoin(df_active.select('CDE_rec_crdt_dt').distinct())
以上是关于如何使用 Spark 数据框中的 lit 在列中插入值?的主要内容,如果未能解决你的问题,请参考以下文章
Spark - 如何使用列对数据框中的字符串进行切片[重复]