Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark PySpark:fillna但用于字符串/正则表达式匹配_Apache Spark_Pyspark - Fatal编程技术网

Apache spark PySpark:fillna但用于字符串/正则表达式匹配

Apache spark PySpark:fillna但用于字符串/正则表达式匹配,apache-spark,pyspark,Apache Spark,Pyspark,我是否可以执行类似于fillna的操作,除了不匹配NA列之外,我是否可以执行类似于字符串包含或正则表达式匹配的操作 例如,“我的位置”列的值类似于美国,美国,例如有时是美国纽约。我想把这样的东西匹配成一个值,比如说United States。我该怎么做 定义映射 查找=[ (“美国|美国|美国”、“美国”), (“英国|联合王国”、“联合王国”) ] 当 从pyspark.sql导入函数为F 从functools导入reduce df=spark.createDataFrame( [“美国”、

我是否可以执行类似于
fillna
的操作,除了不匹配NA列之外,我是否可以执行类似于字符串包含或正则表达式匹配的操作

例如,“我的位置”列的值类似于
美国
美国
,例如有时是
美国纽约
。我想把这样的东西匹配成一个值,比如说
United States
。我该怎么做

定义映射

查找=[
(“美国|美国|美国”、“美国”),
(“英国|联合王国”、“联合王国”)
]

从pyspark.sql导入函数为F
从functools导入reduce
df=spark.createDataFrame(
[“美国”、“美国”、“美国纽约”、“英国”、“英国伦敦”],
“字符串”
)
国家=减少(
λacc,r:F.when(F.col(“值”).rlike(r[0]),F.lit(r[1])。否则(acc),
查找,
F.lit(“未知”))
df.withColumn(“country”,country).show()
# +--------------------+--------------+
#|价值|国家|
# +--------------------+--------------+
#|美国|美国|
#|美国|美国|
#|美国纽约|美国|
#|英国|英国|
#|英国伦敦…|英国|
# +--------------------+--------------+
加入

df.交叉连接(F.broadcast(
createDataFrame(查找,(“模式”,“国家”))
)).其中(F.expr(“类似于模式的值”).drop(“模式”).show()
# +--------------------+--------------+
#|价值|国家|
# +--------------------+--------------+
#|美国|美国|
#|美国|美国|
#|美国纽约|美国|
#|英国|英国|
#|英国伦敦…|英国|
# +--------------------+--------------+

很棒的东西!非常感谢。