【问题标题】:Need a to_csv array fix for python需要一个 to_csv 数组修复 python
【发布时间】:2019-04-17 07:52:39
【问题描述】:

我正在编写一个代码,以便能够从我的数据帧制作一个 csv 文件。问题是我的dataFrame中的某些列包含数组值,所以它不会生成csv文件,它只会给我数组错误。

如何将数组的第一个值作为字符串获取?我尝试使用 explode() 但我只能做一次。有没有其他方法可以解决这个问题?

我有这样的事情:

newDf = df.select(col("customer").alias("c"), col("array1").alias("a1"), 
col("array2").alias("a2"), explode(col("array3".alias("a32))

然后我做一个 sql 查询来构建我想要的:

newDf.createOrReplaceTempView("csvFileTable")

sqlDF = spark.sql("SELECT c, a1, a2, a3 FROM csvFileTable")

display(sqlDF)

【问题讨论】:

标签: python arrays csv apache-spark dataframe


【解决方案1】:

假设您有一个名为df 的DataFrame,其列arrcol 包含数组。您可以使用数组的第一个元素替换该列中的每个数组,如下所示:

df['arrcol'] = df['arrcol'].str[0]

str 的用法可能会让您感到困惑。它更常用于对字符串列进行切片,但它同样适用于数组和列表等其他可切片类型。

【讨论】:

  • 执行此操作时,我只收到此错误:'DataFrame' object does not support item assignment
  • 如果你只打印=右边的部分呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 2015-07-14
  • 2017-02-18
  • 2014-03-12
相关资源
最近更新 更多