Spark - 处理数据框中的特定列值(删除字符)

时间:2016-12-16 09:17:38

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

我使用spark-csv读取文件并将其转换为数据框。 特定列,X让我们调用它,有一系列值 - 0到2, 但是有些行有一个烦人的尾随;N我需要删除。

e.g。

 _________
| ID | X  |
|---------|
| 1  | 0;N|

如何使用Spark执行此操作? 这对我来说都是新手。 我猜它涉及一些使用" filter"但是我无法解决它。

DataFrame按如下方式加载,如果这是一个重要信息:

import sys
from pyspark import SparkContext
from pyspark.sql import SQLContext, GroupedData
from pyspark.sql.types import *

sys.path.append("$SPARK_HOME/python/lib")

# Init steps
sc = SparkContext('local')
sc.setLogLevel("WARN")
sqlContext = SQLContext(sc)

print "Loading file... ",
log_df = sqlContext.read.format('com.databricks.spark.csv').\
options(header='true', inferschema='true', delimiter='\t').\
load('/path/to/file.csv')  # Load data file
print "Done!"

log_df.select('X').show(20, False)

最后一行是我看到某些行有0-2值的表, 而其他人追踪;N我要删除

由于

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作。

from pyspark.sql.functions import regexp_replace, col
log_df.withColumn("X",regexp_replace(col("X"), ";N", "")).show()