我有一个用逗号分隔的文件,没有标题,每行中用逗号分隔的项目数不同,例如:
a, x1, x2
b, x3, x4, x5
c, x6, x7, x8, x9
第一行仅包含3个项目,后续行包含更多项目,因此似乎仅从第一行推断出了列数,因此它跳过了其他行中第三个逗号之后的内容,并且丢失了数据。
spark = init_spark()
df= spark.read.csv(filename)
print (df.take(3))
我得到:
[Row(_c0='a', _c1=' x1', _c2=' x2'),
Row(_c0='b', _c1=' x3', _c2=' x4'),
Row(_c0='c', _c1=' x6', _c2=' x7')]
pyspark.sql.readwriter模块中的 mode =“ PERMISSIVE”
不能解决问题,可能是因为没有标题
答案 0 :(得分:0)
假设最多不知道由col或逗号分隔的值
schema = StructType([
StructField("col_a", StringType(), True),
StructField("col_b", StringType(), True),
StructField("col_c", StringType(), True),
StructField("col_d", StringType(), True),
StructField("col_e", StringType(), True)
])
df = spark.read.csv("a.csv",header=False,schema=schema)
df.show()