如何用"] | ["在pyspark中读取文件定界符

时间:2017-01-18 20:06:00

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

数据如下所示:

pageId]|[page]|[Position]|[sysId]|[carId 0005]|[bmw]|[south]|[AD6]|[OP4

至少有50列和数百万行。

我确实尝试使用以下代码来阅读:

dff = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").option("delimiter", "]|[").load(trainingdata+"part-00000")

它给了我以下错误:

IllegalArgumentException: u'Delimiter cannot be more than one character: ]|['

2 个答案:

答案 0 :(得分:4)

您可以在RDD中使用多个字符作为分隔符

你可以试试这段代码

OneToOneField

您可以使用from pyspark import SparkConf, SparkContext from pyspark.sql import SQLContext conf = SparkConf().setMaster("local").setAppName("test") sc = SparkContext(conf = conf) input = sc.textFile("yourdata.csv").map(lambda x: x.split(']|[')) print input.collect() 函数将RDD转换为DataFrame(如果需要),如果您想这样做,请不要忘记指定架构

答案 1 :(得分:-1)

尝试使用转义序列

dff = (sqlContext.read
                 .format("com.databricks.spark.csv")
                 .option("delimiter", "\\]\\|\\[")
                 .load(trainingdata+"part-00000")