我正在处理的数据集的列中有空格,我在尝试重命名Spark dataframe列名时遇到了麻烦。尝试了stackoverflow中几乎所有可用的解决方案。似乎没有什么工作。
注意:文件必须是拼花文件。
df。printSchema
root|--类型:string(nullable=true)
|--时间戳:string(nullable=true)
|--ID: string(nullable=true)
|--Catg名称:string(nullable=true)
|--错误msg:string(nullable=true)
df.show()
错误:
警告:有一个弃用警告;重新运行-弃用以获取详细信息
org.apache.spark.sql.分析异常:属性名称"Catg Name"包含 " ,;{}()\n\t="中的无效字符。请使用别名重命名它。;
已尝试:
df.select(df.col("Catg Name").alias("Catg_Name"))
然后df.print模式
root|--类型:string(nullable=true)
|--时间戳:string(nullable=true)|--ID: string(nullable=true)
|--Catg_Name: string(nullable=true)
|--Error_Msg: string(nullable=true)
效果很好,但当我使用df时。show()它会引发相同的错误。
警告:有一个弃用警告;使用-deprecation重新运行以获取详细信息
org。阿帕奇。火花sql。AnalysisException:属性名“Catg name”包含“,;{}()\n\t=”之间的无效字符。请使用别名重命名它。;
通过删除列名中的空格并重新分配给Dataframe来实现这个想法怎么样?
val df1 = df.toDF("col 1","col 2","col 3") // Dataframe with spaces in column names
val new_cols = df1.columns.map(x => x.replaceAll(" ", "")) // new column names array with spaces removed
val df2 = df1.toDF(new_cols : _*) // df2 with new column names(spaces removed)
我正在处理的数据集的列中有空格,我在尝试重命名spark dataframe列名时遇到了问题。尝试了StackOverflow中几乎所有可用的解决方案。好像什么都不管用。 注意:文件必须是拼花文件。 已尝试: 然后是df.printschema root 工作良好,但当我使用df.show()时,它会抛出相同的错误。 警告:停用警告1次;使用-deprecation重新运行详细信息 org.apa
我的本地文件夹中有一个csv文件。我想阅读它,删除一列,并替换同一文件夹中的文件。 实际样本数据: 样本数据中的预期数据: 在这种情况下,我想删除列LASTNAME。在Java中可以有效地完成吗?
从具有多个列的拼花地板文件中仅读取spark中的列子集的最有效方法是什么?正在使用spark。阅读格式(“拼花”)。负载(
则错误如下: AttributeError:“property”对象没有属性“parquet”
我们需要每天将文本数据转换为拼花地板/avro,如果输入来自多个具有不同结构的源,我们希望使用基于spark sql的scala代码来实现这一点,而不考虑分隔符和列数或结构。
我只找到TextInputFormat和CsvInputFormat。那么,如何使用ApacheFlink读取HDFS中的拼花文件呢?