【发布时间】:2019-10-14 03:41:45
【问题描述】:
我在 csv 中有如下数据,第一行为空白,第二行仅填充 4 列,如下所示,
201901 201902 201903 201904
A X 1 0 1 1
B Y 0 0 1 1
A Z 1 0 1 1
B X 1 0 1 1
A Y 0 0 0 1
B Z 1 0 0 1
A X 0 1 0 1
B Y 1 1 0 0
A Z 1 1 0 0
B X 0 1 1 0
如果我将数据读入 csv,我将得到如下数据
_c1 _c2 _c3 _c4 _c5 _c6
null null null null null null
null null 201901 201902 201903 201904
A X 1 0 1 1
B Y 0 0 1 1
A Z 1 0 1 1
B X 1 0 1 1
A Y 0 0 0 1
B Z 1 0 0 1
A X 0 1 0 1
B Y 1 1 0 0
A Z 1 1 0 0
B X 0 1 1 0
我已读取没有标题的数据文件并删除了不需要的标题。现在我想将文件转换为有标题
df=spark.read.csv("s3://abc/def/file.csv",header=False)
df=df.where(col("_c3").isNotNull())
Type Source 201901 201902 201903 201904
A X 1 0 1 1
B Y 0 0 1 1
A Z 1 0 1 1
B X 1 0 1 1
A Y 0 0 0 1
B Z 1 0 0 1
A X 0 1 0 1
B Y 1 1 0 0
A Z 1 1 0 0
B X 0 1 1 0
【问题讨论】:
-
你在这方面做了什么?请展示你的努力是如何不工作的......所以不是项目的代码编写服务。请添加您的代码 sn-ps 和测试数据。
-
Hi Ram,测试数据如上提供。如上所述,我试图了解如何将行作为标题但没有得到。因为我无法得到我在这里问过的想法。抱歉不清楚。
-
@KumarP 你的问题被否决了,因为它要么被认为格式不正确,要么通常对社区其他人没有帮助。我建议阅读Help Center 中的帖子,尤其是How do I ask a good question? 主题。
-
stackoverflow.com/questions/27772805/… -- 请看这个问题。它也没有格式化,答案可以从谷歌得到。仍然是赞成的。对于已经知道答案的人来说,问题可能很容易或没有用,但对提问的人很有用。所以我的善意请求不要投反对票以表明你有很高的声誉。
-
当你说它对社区没有帮助时。这意味着提问者不被视为社区的一部分。它的格式正确,带有示例问题,但仍然被否决。我觉得这是错误的。
标签: apache-spark pyspark apache-spark-sql