使用 Pyspark 我找到了如何用字符串替换空值(''),但它用字符串之间的字符串填充数据帧的所有单元格。也许系统会在非空单元格的字符串之间看到空值('')。
这些是初始数据帧的值:
app.get('contact-us', (req, res, next) => {
res.redirect(301, 'http://www.example.com/contact');
});
使用后:
+-----------------+-----+
|CustomerRelStatus|count|
+-----------------+-----+
| Ανοιχτος | 477|
| Κλειστος | 68|
| 'γνωστο | 291|
| | 1165|
+-----------------+-----+
它返回:
newDf = df.withColumn('CustomerStatus', regexp_replace('CustomerRelStatus', '', '-1000'))
还有其他办法吗?
答案 0 :(得分:0)
我认为你在regexp_replace
的第二个参数中缺少一个空格,所以也许试试这个:
newDf = df.withColumn('CustomerStatus', regexp_replace('CustomerRelStatus', ' ', '-1000'))
答案 1 :(得分:0)
希望这有帮助!
from pyspark.sql.functions import col, when
#sample data
df = sc.parallelize([['abc', '123'],
['efg', '456'],
['', '789']]).toDF(('CustomerRelStatus', 'count'))
#replace empty string with 'null' and then impute missing value, OR directly impute it with '-1000' in 'otherwise' condition
df = df.withColumn("CustomerStatus",
when(col('CustomerRelStatus') != '', col('CustomerRelStatus')).otherwise(None)).drop('CustomerRelStatus')
df = df.na.fill({'CustomerStatus': '-1000'})
df.show()
输出
+-----+--------------+
|count|CustomerStatus|
+-----+--------------+
| 123| abc|
| 456| efg|
| 789| -1000|
+-----+--------------+
如果它解决了您的问题,请不要忘记告诉我们:)