首页 文章

在Pyspark Dataframe中选择列

提问于
浏览
9

我正在寻找一种方法来在pyspark中选择我的数据帧的列 . 对于第一行,我知道我可以使用 df.first() 但不确定给出的列 not have column names.

我有5列,想要遍历每一列 .

+--+---+---+---+---+---+---+
|_1| _2| _3| _4| _5| _6| _7|
+--+---+---+---+---+---+---+
|1 |0.0|0.0|0.0|1.0|0.0|0.0|
|2 |1.0|0.0|0.0|0.0|0.0|0.0|
|3 |0.0|0.0|1.0|0.0|0.0|0.0|

4 回答

  • 10

    尝试这样的事情:

    df.select([c for c in df.columns if c in ['_2','_4','_5']]).show()
    
  • 2

    前两列五行

    df.select(df.columns[:2]).take(5)
    
  • 18

    使用 df.schema.names

    spark.version
    # u'2.2.0'
    
    df = spark.createDataFrame([("foo", 1), ("bar", 2)])
    df.show()
    # +---+---+ 
    # | _1| _2|
    # +---+---+
    # |foo|  1| 
    # |bar|  2|
    # +---+---+
    
    df.schema.names
    # ['_1', '_2']
    
    for i in df.schema.names:
      # df_new = df.withColumn(i, [do-something])
      print i
    # _1
    # _2
    
  • 1

    首先,从MySQL或其他数据库导入时,您的模式是由错误创建的 . 你可以使用字典光标来修改它

    cursor = conn.cursor(MySQLdb.cursors.DictCursor)
    

相关问题