当前位置: 首页 > 知识库问答 >
问题:

如何将从parquet文件中读取的spark数据帧中的列名删除/替换为空白空间?

公羊曜灿
2023-03-14

我正在处理的数据集的列中有空格,我在尝试重命名spark dataframe列名时遇到了问题。尝试了StackOverflow中几乎所有可用的解决方案。好像什么都不管用。

注意:文件必须是拼花文件。

已尝试:

df.select(df.col("Catg Name").alias("Catg_Name"))    

然后是df.printschema

root
--type:string(nullable=true)
--timestamp:string(nullable=true)
--id:string(nullable=true)
--catg_name:string(nullable=true)
--error_msg:string(nullable=true)

工作良好,但当我使用df.show()时,它会抛出相同的错误。

警告:停用警告1次;使用-deprecation重新运行详细信息
org.apache.spark.sql.AnalysisException:属性名称“catg name”在“,;{}()\n\t=”中包含无效字符。请使用别名重命名。;

共有1个答案

韦安怡
2023-03-14

删除列名中的空格并将其重新分配给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() 错误: 警告:有一个弃用警告;重新运行-弃用以获取详细信息 org.apache.spark.sql.分析异常:属性名称"Catg Name

  • 我有一个包含大量列的Spark数据框架。我想从中删除两列以获得新的数据帧。 如果列更少,我可以在API中使用select方法,如下所示: 但是既然从长列表中挑选列是一项乏味的任务,有解决方法吗?

  • 我正在使用: Python 3.6.8 火花2.4.4 我在spark类路径中有以下JAR: http://repo1.maven.org/maven2/com/databricks/spark-redshift_2.11/2.0.1/spark-redshift_2.11-2.0.1.jar http://repo1.maven.org/maven2/com/databricks/spark-a

  • 我有一个包含n列的数据帧,我想用空值替换所有这些列中的空字符串。 我试过用 和 他们两个都没有工作。 如有任何线索,我们将不胜感激。谢谢

  • 问题内容: 我需要在PHP中删除空白行(带空格或绝对空白)。我使用此正则表达式,但不起作用: 我想要一个结果: 将: 问题答案: 上面的正则表达式说:

  • 问题内容: 我确实有一个包含超过100000个数据元素的表,但是其中几乎有350个空白行。如何使用phpmyadmin删除此空白行?手动删除是一项繁琐的任务。 问题答案: 普遍的答案是: 或者 参见:http : //dev.mysql.com/doc/refman/5.0/en/delete.html 发布表格时的更多信息!〜 另外,请务必执行以下操作: 删除之前,这样就可以看到要删除的行!我认