将csv文件作为Dataframe读取时架构错误

ax6ht2ek  于 2021-05-24  发布在  Spark
关注(0)|答案(2)|浏览(380)

尝试将csv文件读入dataframe简单代码

df = spark.read.csv("1.csv")

我得到了

df.printSchema()
root
 |-- _c0: string (nullable = true)

我也试过这个

db = spark.read.csv("1.csv", header=True, inferSchema= "True")
db.printSchema()
root
 |--                   id                  |                      date                      |                              cases                               |                      country                      |                       deaths                       |   cities   |    per_cap     |

提前谢谢你的帮助

kulphzqa

kulphzqa1#

您应该创建自己的模式。
使用scala:

val schemaExpected = new StructType()
.add("id" , StringType , nullable = true)
.add("date" , DateType, nullable = true)
...
.add(deaths , IntegerType, nullable = true)

然后可以读取Dataframe:

val db = spark.read.option("header","true").schema(schemaExpected).csv("1.csv")
jgwigjjp

jgwigjjp2#

很明显,你的分线器是个管子 | .
尝试:

db = spark.read.csv("1.csv", sep='|', header=True, inferSchema= "True")

for col in db.columns:
    db = db.withColumnRenamed(col, col.strip())

相关问题