В PySpark версии 2.1.0 можно удалить несколько столбцов, используя drop
, предоставив список строк (с именами столбцов, которые вы хотите удалить) в качестве аргумента для drop
. (См. Документацию http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html?highlight=drop#pyspark. sql .DataFrame.drop ).
В вашем случае вы можете создать список, содержащий имена столбцов, которые вы хотите удалить. Например:
cols_to_drop = [x for x in colunas if (x.startswith('test') or x.startswith('id_1') or x.startswith('vehicle'))]
И затем применить drop
, распаковывающий список:
df1.drop(*cols_to_drop)
В конечном итоге, можно также получить аналогичный результат, используя select
. Например:
# Define columns you want to keep
cols_to_keep = [x for x in df.columns if x not in cols_to_drop]
# create new dataframe, df2, that keeps only the desired columns from df1
df2 = df1.select(cols_to_keep)
Обратите внимание, что при использовании select
вам не нужно распаковывать список.
Обратите внимание, что этот вопрос также относится к аналогичным выпуск.
Надеюсь, это поможет.