如何将值从表传递给 pyspark 变量?

这可能是一个愚蠢的问题,但我有一个表,其中每一列都包含一个我想传递给变量的值:

    object  = spark.sql("""
     select sfObject from db.tbl
     where Id = {}
      """.format(1))
    
    a.show()

我看到的是一个名为sfObject“ValueA”的预期对应值的列,我取回了一个pyspark.sql.dataframe.DataFrame类型对象。

我正在尝试将每列的值传递给一个变量,这样object = 'ValueA'. 我怎样才能做到这一点?

谢谢!


眼眸繁星
浏览 108回答 2
2回答

胡说叔叔

IIUC 你想要列的值而不是数据框的值,所以在你的情况下你可以这样做object  = spark.sql(""" select sfObject from db.tbl where Id = {}  """.format(1)).collect()[0][0]该对象现在将包含值而不是数据框。

12345678_0001

如果我正确理解了这个问题,你想从 python shell 中的 DataFrame 中获取数据作为变量。为此,您可以使用object.collect()获取具有pyspark.sql.Row与 DataFrame 中的列对应的字段的 python 对象列表,或者object.toPandas()获取DataFrame带有数据的 Pandas 对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python