我有一个通过读取EBCDIC数据文件创建的Spark DataFrame。其模式如下
scala> myDF.printSchema
root
|-- DF_RECORD: struct (nullable = true)
| |-- ID: string (nullable = true)
| |-- BALANCE_AMT: decimal(15,4) (nullable = true)
我甚至可以让它显示它的行。但是,当我尝试将其写为CSV时,我得到以下错误
scala> myDF.write.format("csv").mode("overwrite").option("header", "true").save("/path")
org.apache.spark.sql.AnalysisException: CSV data source does not support struct<ID:string,BALANCE_AMT:decimal(15,4)> data type.;
在写之前,有没有我可能需要取消的列转换?
Spark版本2.4.0-cdh6.2.1
Scala版本2.11.12
2条答案
按热度按时间vyswwuz21#
在写入之前添加
selectExpr
dw1jzc5e2#
通过访问
withColumn
中的列名将其转换为单独的列:现在,将其导出为CSV: