首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PySpark在选择性列中插入数据?

如何使用PySpark在选择性列中插入数据?
EN

Stack Overflow用户
提问于 2021-09-19 12:32:20
回答 1查看 563关注 0票数 2

我在Redshift上有一个表,我想使用插入一些数据。

redshift表有模式:

代码语言:javascript
复制
CREATE TABLE admin.audit_of_all_tables
(
    wh_table_name varchar,
    wh_schema_name varchar,
    wh_population_method integer,
    wh_audit_date timestamp without time,
    wh_percent_change numeric(15,5),
    wh_s3_path varchar
)
DISTSTYLE AUTO;

在我的dataframe中,我希望只保留前4列的值,并将该dataframe的数据写入此表。

我的数据是这样的:

现在,我想在Redshift上对我的表执行df.write.format,但我需要以某种方式指定只向前四列插入数据,而不传递最后2列的值(默认情况下它们保持为空)。

是否知道如何使用dataframe.write.format (或任何方法)来指定这一点。

感谢您的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-19 15:32:10

您可以使用selectExpr来选择前四列加上null的两个附加列,这些列都是投射,以达到所需的类型:

代码语言:javascript
复制
df2 = df.selectExpr("table_name as wh_table_name",
    "schema_name as wh_schema_name",
    "population_method as wh_population_method",
    "audit_date as wh_audit_date",
    "cast(null as double) as wh_percent_change",
    "cast(null as string) as wh_s3_path")

df2.write....
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69243305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档