簡體   English   中英

如何在 Apache Spark 中的 Dataframe 上運行 Python 中的正則表達式

[英]How to run Regex in Python on a Dataframe in Apache Spark

我正在嘗試在 Apache Spark 中的 dataframe 上運行 Python 中的正則表達式。

df是

在此處輸入圖像描述

正則表達式如下:

import re
m = re.search("[Pp]ython", df)
print(m)

我收到以下錯誤消息:

TypeError: expected string or bytes-like object

以下將起作用

導入 re m = re.search("[Pp]ython", 'Python python') print(m)

但我希望正則表達式適用於 dataframe

您可以使用regexp_extract

from pyspark.sql import functions as F

data = [["Python"],["python"], ["Scala"], ["PYTHON"]]
schema= ["language"]

df = spark.createDataFrame(data, schema)

df = df.withColumn("extracted", F.regexp_extract("language", "[Pp]ython", 0))

結果:

+--------+---------+
|language|extracted|
+--------+---------+
|  Python|   Python|
|  python|   python|
|   Scala|         |
|  PYTHON|         |
+--------+---------+

re.search的定義是

re.search(模式,字符串,標志=0)

第二個參數是一個字符串,這個 function 不能用於 Spark 數據幀。 但是(至少大多數)適用於re.search的模式也適用於regexp_extract 因此,首先使用re.search測試模式可能是一種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM