当前位置: 首页 > 知识库问答 >
问题:

在SPARK Sql/Pyspark中传递变量值作为列名?

厉坚
2023-03-14

我是PYSPARK/SPARKSQL的初学者,我有一个如下的要求,我有一个如下的配置表(DataFrame:Config),Config:< br > | data frame | col 1 | col 2 | col 3 |:-|:-:|-:|-:|-:| Emp | name 1 | name 2 | Address | Job | Doj | Role | DOB

我已经迭代了上面的数据帧并为变量赋值,并且需要将变量值作为列传递给另一个DF,如下所示。

例如,

First_Name = Config.alias('a').select('a.col1).filter("Rownumber = '" + str(i) + "'" ).first()[0]
print("First_Name :" + First_Name )
Last_Name = Config.alias('a').select('a.col2).filter("Rownumber = '" + str(i) + "'" ).first()[0]
print("Last_Name :" + Last_Name )

现在名字,姓氏变量保存数据帧Emp下面的列名,

需要如下数据框架,

DF =Emp.select (col(‘Name1’),col(‘Name2),col(‘Address))

共有1个答案

陆承宣
2023-03-14

不确定我是否正确地理解了这个问题。但根据我的理解,您正在从相应的数据帧中获得first_name和last_name,并且您希望将其与DF数据帧中的col函数一起使用

如果是这种情况,可以使用python的str.format,如下所示:

DF = emp.select(col("{}".format(First_Name)), 
        col("{}".format(Last_Name)))
 类似资料:
  • 我想计算PySpark数据帧的两列之间的Jaro Winkler距离。Jaro-Winkler距离可通过所有节点上的pyjarowinkler包获得。 pyjarowinkler的工作原理如下: 输出: 我试图编写一个UDF,将两列作为序列传递,并使用lambda函数计算距离。我是这样做的: 我应该能够在上述函数中传递任意两个字符串列。我得到以下输出: 预期产出: 我怀疑这可能是因为不正确。它包含

  • 问题内容: 我在jenkins有两个工作,这两个工作都需要相同的参数。 如何使用参数运行第一个作业,以便在触发第二个作业时使用相同的参数? 问题答案: 您可以使用参数化触发器插件,该插件可让您将参数从一个任务传递到另一任务。 您还需要在上游添加从上游传递的此参数。

  • 我用mtcars数据集来说明我的问题。 例如,我想将数据子集到4-cyl汽车。我可以做到: 在我的工作中,我需要传递一个字符串变量作为我的列名。例如: 我也做了: 在这两种情况下,我都得到空数据帧。

  • 问题内容: 我正在尝试编写一个简单的存储过程,该过程需要三个参数“数据库名称一”,“数据库名称二”和“表名称”。然后,sql将对每个数据库中定义的表执行行计数并将其存储。 零星地处理它,我遇到了第一个问题,即您做不到 我知道您可以在命令中使用动态sql,但这并不理想,因为我无法返回值。 下面的示例看起来像它应该工作,但是不起作用。 给出的错误信息是 当前正在使用SQL Server 2008 SP

  • 我想要一个udf函数,它遍历列“Values”,并检查下一个值是否是当前行值的50%或更多。如果它在50%之内,那么我希望包含值“是”,如果不是,那么我不希望包含值。如果该值在最后一个值和下一个值之间下降得太快,则不应将其包括在内,但如果该值逐渐下降,且与最后一个包括的值相比不超过50%,则可以。这就是为什么。未包括id 5的1,但。包含id 9的1,因为它遵循的值从逐渐下降。4不超过50%。我曾

  • 问题内容: 我试图将变量传递到Puppeteer中的函数中,但是当我使用以下非常简单的示例时,该变量未定义。 我是Puppeteer的新手,找不到任何可构建的示例,因此我需要帮助将该变量传递到函数中,以便在内部使用它。 问题答案: 您必须像这样将变量作为参数传递给: