检查字符串以在火花数据框中创建新列

时间:2021-07-26 03:15:18

标签: python regex apache-spark pyspark apache-spark-sql

我有一个包含交易对的 Spark 数据框列,我需要使用它来创建一个新列,其中填充了代币的名称。

第一列“bot”包含“Polkadot/USD”,我需要一个名为“coin”的新列,它只包含bot列的子字符串“Polkadot”。所有其他行相同。基本上新列需要删除子字符串“/USD”。

代码如何实现这一点。我是一名加密交易员而不是编码员,所以答案中的编码细节越多越好。谢谢。

注意:笔记本是一个 Python 笔记本

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用 regexp_replace 将一个子字符串替换为另一个子字符串

df.withColumn('coin', F.regexp_replace(F.col('bot'), '/USD', ''))

示例

# sample dataframe
df3 = spark.createDataFrame([
    ('BamBridge/USD', ),
    ('CLV/USD', ),
    ('ETH/USD', ),
    ('Polkadot/USD', ),
], ['bot'])

df3 = df3.withColumn('coin', F.regexp_replace(F.col('bot'), '/USD', ''))

df3.show()

+-------------+---------+
|          bot|     coin|
+-------------+---------+
|BamBridge/USD|BamBridge|
|      CLV/USD|      CLV|
|      ETH/USD|      ETH|
| Polkadot/USD| Polkadot|
+-------------+---------+