1
我正在使用spark-csv讀取文件並將其轉換爲數據幀。 具體的列,我們稱之爲X,具有一個值範圍 - 0到2, ,但某些行有一個惱人的尾部;N
,我需要刪除它。Spark - 操作數據框中的特定列值(刪除字符)
例如
_________
| ID | X |
|---------|
| 1 | 0;N|
我該怎麼用Spark做到這一點? 這對我來說都是新的。 我猜它涉及到一些使用「過濾器」,但我無法解決它。
據幀被載入如下,如果這是一個重要的信息:
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
,我想刪除
謝謝
我最終使用lambda函數與以下列方式UDF: 'UDF = UserDefinedFunction(拉姆達X:X [:1]如果len(X)> 1否則x,StringType()) df = df.withColumn('X',udf(df ['X'])。cast(IntegerType())) 我也接受你的回答,謝謝 – Adiel