将csv读入spark sql数据帧时删除列的常用字符串

时间:2016-06-09 00:53:28

标签: apache-spark spark-dataframe trim

我正在使用databricks spark-csv模块将csv文件作为sqlContext读入。我自定义了我的架构,如下例所示。但是,我在我的数据中注意到,第3列是汽车的型号,其中的字符串总是有一个共同的字符串"型号:"在它面前。有没有办法修剪常见的字符串?

from pyspark.sql import SQLContext
from pyspark.sql.types import *

sqlContext = SQLContext(sc)
customSchema = StructType([ \
    StructField("year", IntegerType(), True), \
    StructField("make", StringType(), True), \
    StructField("model", StringType(), True), \
    StructField("comment", StringType(), True), \
    StructField("blank", StringType(), True)])

df = sqlContext.read \
    .format('com.databricks.spark.csv') \
    .options(header='true') \
    .load('cars.csv', schema = customSchema)

1 个答案:

答案 0 :(得分:0)

您可以使用regexp_replace

from pyspark.sql import functions as F

[...]

df = df.withColumn('model', F.regexp_replace(df.model, r'^model:', ''))