PySpark: Как я могу установить порядок строкового индексатора на этапе конвейера String Indexer, используя ML API setStringIndexerOrderType? - PullRequest
0 голосов
/ 23 марта 2020

Я хотел бы изучить настройку различных параметров для стадии конвейера StringIndexer. Начиная с версии 2.3.0 это можно сделать, используя setStringIndexerOrderType (value) . Однако мне не совсем понятно, как должен выглядеть синтаксис. Это код, который у меня есть. Как я могу это исправить, чтобы он работал?

def stringindexer(df, input_cols):

'''
Converts non-numeric data to numeric.
:param data: the dataframe
:param categoricalCols: the name list of the categorical data
'''
StringIndexer = StringIndexer()\
                .setStringIndexerOrderType(frequencyDesc)

#string index all categorical columns. Output columns have a column name that end in _indexed
indexers = [StringIndexer(inputCol=c, outputCol="{0}_indexed".format(c))
              for c in input_cols]

#create indexer pipeline
pipeline = Pipeline(stages=indexers)
#fit pipeline to the data  
model=pipeline.fit(df)
#get model labels
#labels = model.labels
#transform data using indexer pipeline
data = model.transform(df)
#return data and the indexers   
return data, indexers

Кроме того, вы знаете, возможно ли каким-либо образом настроить тип indexorder или можно только заданные параметры (например, частотыDes c, частоты As c) использоваться ?

...