我想在pyspark中以如下方式连接两个数据帧df1:
+-----------+-------------------+-----------------+
| id| date_start_id| date_end_id|
+-----------+-------------------+-----------------+
| 1| 2019-01-29| 2019-02-09|
| 2| 2019-01-29| 2019-02-09|
| 3| 2019-01-29| 2019-02-09|
| 4| 2019-01-29| 2019-02-09|
| 5| 2019-01-29| 2019-02-09|
| 6| 2019-01-29| 2019-02-09|
| 7| 2019-01-29| 2019-02-09|
| 8| 2019-01-29| 2019-02-09|
| 9| 2019-01-29| 2019-02-09|
| 10| 2019-01-29| 2019-02-09|
+-----------+-------------------+-----------------+
df2 看起来像:
+-----------+-------------------+-----------------+-----------+
| id| date_start_id| date_end_id| response|
+-----------+-------------------+-----------------+-----------+
| 2| 2019-01-29| 2019-02-09| 1|
| 3| 2019-01-29| 2019-02-09| 1|
| 5| 2019-01-29| 2019-02-09| 1|
| 7| 2019-01-29| 2019-02-09| 1|
| 8| 2019-01-29| 2019-02-09| 1|
+-----------+-------------------+-----------------+-----------+
我想以这样的方式连接两个数据帧,使其看起来像:
+-----------+-------------------+-----------------+-----------+
| id| date_start_id| date_end_id| response|
+-----------+-------------------+-----------------+-----------+
| 1| 2019-01-29| 2019-02-09| null|
| 2| 2019-01-29| 2019-02-09| 1|
| 3| 2019-01-29| 2019-02-09| 1|
| 4| 2019-01-29| 2019-02-09| null|
| 5| 2019-01-29| 2019-02-09| 1|
| 6| 2019-01-29| 2019-02-09| null|
| 7| 2019-01-29| 2019-02-09| 1|
| 8| 2019-01-29| 2019-02-09| 1|
| 9| 2019-01-29| 2019-02-09| null|
| 10| 2019-01-29| 2019-02-09| null|
+-----------+-------------------+-----------------+-----------+
我做了什么:
df = df1.join(df2, ["id","date_start_id","date_end_id"], "left")
但是,不幸的是,这对我来说并不奏效。任何形式的帮助或暗示都将非常感谢。
#Pyspark 以 NaN 为值,因此在连接后插入 NaN。我更多地使用 sql 和 spark,因为它很快。
def dropColumn_sql(df,col_names,spark):
col_names = [item for item in df.columns if item not in col_names]
df = df.selectExpr(col_names)
return df
def join_df_with_NaN(df1, df2, cond, how):
df = df1.join(df2, cond, how=how)
for col in df.columns:
df = df.selectExpr("*", f""" case when {col} == null then cast('nan' as float) else {col} end as {col+'_temp'}""")
li = []
li.append(col)
df = dropColumn_sql(df, li, spark).withColumnRenamed(col+'_temp', col )
return df
问题内容: 我想补的平均相邻元件。 考虑一个数据框: 我想要的输出是: 我研究了其他解决方案,例如包含NaN的Fillcell之前和之后的平均值,但这在连续两个或多个s的情况下不起作用。 任何帮助是极大的赞赏! 问题答案: 使用+除以2: 编辑: 如果包含第一个和最后一个元素,则使用([Dark` 建议):
问题内容: 这应该是程序员经常遇到的问题,但是我从来没有尝试过用这种方式来解决问题。 也就是说,我会解释。说,我需要像这样从表Zoo获取值: 现在,我可以将所有值都添加到列表中。我需要在网格中显示该查询的详细信息。现在已经有了z.predator和z.prey值(它们是时间上的整数,即它们各自的ID),我需要填充其有意义的值以将其显示给最终用户(我不能仅仅显示其ID)。所以现在我可能会做这样的事情
null 作者(PK) AuthorName Pubid(PK) pubName 书籍ID(FK) authorid null null 我应该只获得一行查询以获得以上结果。我写的是: 但相反,我得到了许多具有重复数据的行。
我在填充Tableview时遇到问题。当我运行此代码时,我的tableview具有与观察列表相同数量的记录,但什么都不可见。 有什么想法吗?donť理解一些类似cellvalueProperty的东西。这对我的示例有用吗?谢谢
问题内容: 我是Python和Pandas的新手,所以可能有一个我看不到的简单解决方案。 我有一些看起来像这样的不连续数据集: 我现在正在寻找一种解决方案,以实现以下目标: 问题是,A中的间隙因数据集的位置和长度而异… 问题答案: 和是你的朋友。 首先将A列移至索引: 然后使用新索引重新索引,此处使用nans填充缺少的数据。我们使用对象是因为我们可以命名它。这将在下一步中使用。 最后使用将索引移回
我有以下问题,因为我是pyspark的新手。基于来自两列的值的条件,我想填充第三列。条件是: < li >如果分号包含在col2中,请检查col1 < ul > < li >如果col1 == 1,则取分号前的值 < li >如果col1 == 2,则取分号后的值 这就是数据帧的样子。 我创建了下面的udf,它给出了错误“不能将列转换为布尔值:请使用” 我通过谷歌搜索各种功能构建了这个udf,所以