Hey zero323 Я использовал ту же технику для просмотра метаданных, и я закодировал это Transformer
.
def _transform(self, data):
maxValues = self.getOrDefault(self.maxValues)
categoricalCols = self.getOrDefault(self.categoricalCols)
new_schema = types.StructType(data.schema.fields)
new_data = data
for (col, maxVal) in zip(categoricalCols, maxValues):
# I have not decided if I should make a new column or
# overwrite the original column
new_col_name = col + "_categorical"
new_data = new_data.withColumn(new_col_name,
data[col].astype(types.DoubleType()))
# metadata for a categorical column
meta = {u'ml_attr' : {u'vals' : [unicode(i) for i in range(maxVal + 1)],
u'type' : u'nominal',
u'name' : new_col_name}}
new_schema.add(new_col_name, types.DoubleType(), True, meta)
return data.sql_ctx.createDataFrame(new_data.rdd, new_schema)
Шаг за шагом
Выделите входные данные
Данные ... Из таблицы / диапазона ... не проверять [] В моей таблице есть заголовки
Добавить столбец. .. Пользовательский столбец ... используя имя столбца Пользовательский, с формулой
Text.Length([Column1])
Добавить столбец ... Пользовательский столбец ... используя имя столбца Пользовательский 1, с формулой
if [Custom]=6 then [Column1] else null
[118 ] Нажмите на столбец Custom.1, щелкните правой кнопкой мыши и заполните ... вниз ...
Используйте стрелку рядом с пользовательским столбцом и снимите флажок [] 6, оставив только [x] 11
Щелкните столбец Пользовательский, щелкните правой кнопкой мыши и выберите удалить столбцы
файл ... закрыть и загрузить [ 1111]
Код производства:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Length([Column1])),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each if [Custom]=6 then [Column1] else null),
#"Filled Down" = Table.FillDown(#"Added Custom1",{"Custom.1"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Custom] =11)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"})
in #"Removed Columns"