Pyspark:选择具有其位置的特定列

Lau*_*aro 4 apache-spark-sql pyspark

我想知道如何在数据框中选择具有数字但不包含其名称的特定列?

像熊猫一样:

df = df.iloc[:,2]
Run Code Online (Sandbox Code Playgroud)

这是可能的 ?

Psi*_*dom 9

您始终可以获取列的名称,df.columns[n]然后select:

df = spark.createDataFrame([[1,2], [3,4]], ['a', 'b'])
Run Code Online (Sandbox Code Playgroud)

要在位置选择列n:

n = 1
df.select(df.columns[n]).show()
+---+                                                                           
|  b|
+---+
|  2|
|  4|
+---+
Run Code Online (Sandbox Code Playgroud)

所有选择,但列n:

n = 1
Run Code Online (Sandbox Code Playgroud)

你可以使用drop:

df.drop(df.columns[n]).show()
+---+
|  a|
+---+
|  1|
|  3|
+---+
Run Code Online (Sandbox Code Playgroud)

或者使用手动构造的列名称进行选择

df.select(df.columns[:n] + df.columns[n+1:]).show()
+---+
|  a|
+---+
|  1|
|  3|
+---+
Run Code Online (Sandbox Code Playgroud)