【发布时间】:2016-09-21 12:45:56
【问题描述】:
我有一个 spark 数据框,其中有一列包含字符串值(即“xyztext\afadfa”)。我希望创建一个新列,其中值是“0”或“1”,具体取决于原始列是否包含某些文本(即“文本”)
结果示例:
## +---+---+------+---------+
## | x1| x2| x3 | xnew |
## +---+---+------+---------+
## | 1| a| xtext| 1 |
## | 3| B| abcht| 0 |
编辑:由于 SGVD,我以前尝试过这个(现在已经添加了 .cast(int)),但是当我插入列名时收到“列不可调用”错误: df1 = df.withColumn('Target', df.column.contains('text').cast('int'))
到目前为止,我取得的最好成绩是通过以下方式创建一个包含 0 的列:
from pyspark.sql.functions import lit
df1 = df.withColumn('Target', lit(0))
我也尝试了 if then else 语句来创建向量,但没有运气:
def targ(string):
if df.column.contains('text'): return '1'
else: return '0'
【问题讨论】:
标签: python function text apache-spark dataframe