python-3.x - 将第 1 行提升为列标题 - Spark DataFrame
问题描述
我低于 Spark 数据框。
我想将第 1 行提升为列标题,新的 spark DataFrame 应该是
我知道这可以在 pandas 中轻松完成,如下所示:
new_header = pandaDF.iloc[0]
pandaDF = pandaDF[1:]
pandaDF.columns = new_header
但是不想转换成 Pandas DF,因为必须将其持久化到数据库中,其中必须将 pandas DF 转换回 Spark DF,然后注册为表,然后写入数据库。
解决方案
Try with .toDF
and filter
our the column values.
Example:
#sample dataframe
df.show()
#+----------+------------+----------+
#| prop_0| prop_1| prop_2|
#+----------+------------+----------+
#|station_id|station_name|sample_num|
#| 101| Station101| Sample101|
#| 102| Station102| Sample102|
#+----------+------------+----------+
from pyspark.sql.functions import *
cols=sc.parallelize(cols).map(lambda x:x).collect()
df.toDF(*cols).filter(~col("station_id").isin(*cols)).show()
#+----------+------------+----------+
#|station_id|station_name|sample_num|
#+----------+------------+----------+
#| 101| Station101| Sample101|
#| 102| Station102| Sample102|
#+----------+------------+----------+
推荐阅读
- database - ORA-22288: 文件或 LOB 操作 FILEOPEN 路径中的软链接失败
- python - 使用 Flask 测试客户端请求传递 cookie 标头
- c# - 将 LINQ 表达式转换为 SQL Server 存储过程
- c - Unsigned long long 不同的结果
- java - 文件的相对路径 | 弹簧靴
- compiler-warnings - 如何为 Purescript 中未使用的参数/模式变量启用警告?
- c++ - 回调和函数指针有什么关系?
- java - 如何使用数组使用随机生成的值计算百分比?
- python - 如何保护 IBM Cloud 中的配置文件
- sonarqube - 自 SQ 7.2.1 以来如何使用自定义插件修复“以下语言没有内置质量配置文件”