数据如下所示:
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: ]|['
答案 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")