-
- All Implemented Interfaces:
public final class DataFrameCellModificationKt
-
-
Field Summary
Fields Modifier and Type Field Description private final static DataFrameParserOptions
parser
-
Method Summary
Modifier and Type Method Description final DataFrameParserOptions
getParser()
final static <T extends Any, C extends Any> UpdateClause<T, C>
update(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
final static <T extends Any, C extends Any> UpdateClause<T, C>
update(DataFrame<T> $self, Iterable<ColumnReference<C>> cols)
final static <T extends Any> UpdateClause<T, Object>
update(DataFrame<T> $self, String cols)
final static <T extends Any, C extends Any> UpdateClause<T, C>
update(DataFrame<T> $self, KProperty<C> cols)
final static <T extends Any, C extends Any> UpdateClause<T, C>
update(DataFrame<T> $self, ColumnReference<C> cols)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
update(DataFrame<T> $self, ColumnReference<C> firstCol, ColumnReference<C> cols, Function2<DataRow<T>, C, R> expression)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
update(DataFrame<T> $self, KProperty<C> firstCol, KProperty<C> cols, Function2<DataRow<T>, C, R> expression)
final static <T extends Any, R extends Any> DataFrame<T>
update(DataFrame<T> $self, String firstCol, String cols, Function2<DataRow<T>, Object, R> expression)
final static <T extends Any, C extends Any> UpdateClause<T, C>
where(UpdateClause<T, C> $self, Function2<DataRow<T>, C, Boolean> predicate)
final static <T extends Any, C extends Any> UpdateClause<T, C>
at(UpdateClause<T, C> $self, Collection<Integer> rowIndices)
final static <T extends Any, C extends Any> UpdateClause<T, C>
at(UpdateClause<T, C> $self, Integer rowIndices)
final static <T extends Any, C extends Any> UpdateClause<T, C>
at(UpdateClause<T, C> $self, IntRange rowRange)
final static <T extends Any, C extends Any> UpdateClause<T, C>
guessTypes(UpdateClause<T, C> $self)
final static <T extends Any, C extends Any> UpdateClause<T, C>
toType(UpdateClause<T, C> $self, KType type)
final static <T extends Any, C extends Any> UpdateClause<T, C>
suggestTypes(UpdateClause<T, C> $self, Pair<KClass<?>, KType> suggestions)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
withRowCol(UpdateClause<T, C> $self, Function2<DataRow<T>, DataColumn<C>, R> expression)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
with(UpdateClause<T, C> $self, KType targetType, Function2<DataRow<T>, C, R> expression)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
with(UpdateClause<T, C> $self, Function2<DataRow<T>, C, R> expression)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
with(UpdateClause<T, C> $self, R value)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
with(ConvertClause<T, C> $self, Function2<DataRow<T>, C, R> rowConverter)
final static <T extends Any, C extends Any, R extends Any> SplitWithTransform<T, C, R>
with(Split<T, C> $self, Function1<C, Iterable<R>> splitter)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
withExpression(UpdateClause<T, C> $self, Function2<DataRow<T>, C, R> expression)
final static <T extends Any, C extends Any> UpdateClause<T, C>
notNull(UpdateClause<T, C> $self)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
notNull(UpdateClause<T, C> $self, Function2<DataRow<T>, C, R> expression)
final static <T extends Any, C extends Any> DataFrame<T>
withNull(UpdateClause<T, C> $self)
final static <T extends Any, C extends Any> ConvertClause<T, C>
convert(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
final static <T extends Any, C extends Any> ConvertClause<T, C>
convert(DataFrame<T> $self, KProperty<C> columns)
final static <T extends Any> ConvertClause<T, Object>
convert(DataFrame<T> $self, String columns)
final static <T extends Any, C extends Any> ConvertClause<T, C>
convert(DataFrame<T> $self, ColumnReference<C> columns)
final static <T extends Any> DataFrame<T>
to(ConvertClause<T, ?> $self, KType type)
final static <T extends Any, C extends Any> DataFrame<T>
to(ConvertClause<T, C> $self, Function1<DataColumn<C>, DataColumn<?>> columnConverter)
final static <C extends Any> DataColumn<C>
convertTo(DataColumn<?> $self)
final static DataColumn<?>
convertTo(DataColumn<?> $self, KType newType)
final static DataColumn<LocalDateTime>
convertToDateTime(DataColumn<?> $self)
final static DataColumn<LocalDate>
convertToDate(DataColumn<?> $self)
final static DataColumn<LocalTime>
convertToTime(DataColumn<?> $self)
final static DataColumn<Integer>
convertToInt(DataColumn<?> $self)
final static DataColumn<String>
convertToString(DataColumn<?> $self)
final static DataColumn<Double>
convertToDouble(DataColumn<?> $self)
final static <T extends Any> DataFrame<T>
toInt(ConvertClause<T, ?> $self)
final static <T extends Any> DataFrame<T>
toDouble(ConvertClause<T, ?> $self)
final static <T extends Any> DataFrame<T>
toFloat(ConvertClause<T, ?> $self)
final static <T extends Any> DataFrame<T>
toStr(ConvertClause<T, ?> $self)
final static <T extends Any> DataFrame<T>
toLong(ConvertClause<T, ?> $self)
final static <T extends Any> DataFrame<T>
toBigDecimal(ConvertClause<T, ?> $self)
final static <T extends Any> DataFrame<T>
toDate(ConvertClause<T, ?> $self, ZoneId zone)
final static <T extends Any> DataFrame<T>
toTime(ConvertClause<T, ?> $self, ZoneId zone)
final static <T extends Any> DataFrame<T>
toDateTime(ConvertClause<T, ?> $self, ZoneId zone)
final static <T extends Any, C extends Any> DataFrame<T>
toDataFrames(ConvertClause<T, Many<Many<C>>> $self, Boolean containsColumns)
final static <T extends Any> DataColumn<DataFrame<?>>
toDataFrames(DataColumn<Many<Many<T>>> $self, Boolean containsColumns)
final static DataColumn<LocalDate>
toLocalDate(DataColumn<?> $self, ZoneId zone)
final static DataColumn<LocalDateTime>
toLocalDateTime(DataColumn<?> $self, ZoneId zone)
final static DataColumn<LocalTime>
toLocalTime(DataColumn<?> $self, ZoneId zone)
final static DataColumn<?>
tryParse(DataColumn<String> $self)
final static <T extends Any> DataFrame<T>
parse(DataFrame<T> $self)
final static <T extends Any> DataFrame<T>
parse(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<Object>> columns)
final static DataColumn<?>
parse(DataColumn<String> $self)
final static DataColumn<DataFrame<?>>
tryParseAnyFrame?(DataColumn<DataFrame<?>> $self)
final static <T extends Any, C extends Any> Split<T, C>
split(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
final static <T extends Any> Split<T, Object>
split(DataFrame<T> $self, String column)
final static <T extends Any, C extends Any> Split<T, C>
split(DataFrame<T> $self, ColumnReference<C> column)
final static <T extends Any, C extends Any> Split<T, C>
split(DataFrame<T> $self, KProperty<C> column)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
into(SplitWithTransform<T, C, R> $self, ColumnReference<?> firstName, ColumnReference<?> otherNames)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
into(SplitWithTransform<T, C, R> $self, String names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
into(SplitWithTransform<T, C, R> $self, List<String> names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T>
into(Split<T, C> $self, String names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
final static <T extends Any> DataFrame<T>
intoTC(Split<T, String> $self, String names, Function2<ColumnWithPath<String>, Integer, String> extraNamesGenerator)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
into(MergeClause<T, C, R> $self, String columnName)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
into(MergeClause<T, C, R> $self, ColumnPath columnPath)
final static <T extends Any, C extends Any, R extends Any> DataFrame<T>
intoMany(SplitWithTransform<T, C, R> $self, Function2<ColumnWithPath<C>, Integer, List<String>> namesProvider)
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T>
intoRowsTC(Split<T, C> $self, Boolean dropEmpty)
final static <T extends Any> DataFrame<T>
intoRowsFrame(Split<T, DataFrame<?>> $self, Boolean dropEmpty)
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T>
inplaceTC(Split<T, C> $self)
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T>
inward(Split<T, C> $self, String names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
final static <T extends Any, C extends Any> MergeClause<T, C, Iterable<C>>
merge(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
final static <T extends Any, C extends Any, R extends Any> MergeClause<T, C, String>
asStrings(MergeClause<T, C, R> $self)
final static <T extends Any, C extends Any, R extends Any> MergeClause<T, C, String>
by(MergeClause<T, C, R> $self, CharSequence separator, CharSequence prefix, CharSequence postfix, Integer limit, CharSequence truncated)
final static <T extends Any, C extends Any, R extends Any, V extends Any> MergeClause<T, C, V>
by(MergeClause<T, C, R> $self, Function1<R, V> transform)
final static <T extends Any> DataFrame<T>
explode(DataFrame<T> $self, Boolean dropEmpty)
final static <T extends Any> DataFrame<T>
explode(DataFrame<T> $self, ColumnReference<?> columns, Boolean dropEmpty)
final static <T extends Any> DataFrame<T>
explode(DataFrame<T> $self, String columns, Boolean dropEmpty)
final static <T extends Any> DataFrame<T>
explode(DataFrame<T> $self, Boolean dropEmpty, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<?>> selector)
final static <T extends Any> DataFrame<T>
mergeRows(DataFrame<T> $self, String columns, Boolean dropNulls)
final static <T extends Any> DataFrame<T>
mergeRows(DataFrame<T> $self, ColumnReference<?> columns, Boolean dropNulls)
final static <T extends Any, C extends Any> DataFrame<T>
mergeRows(DataFrame<T> $self, KProperty<C> columns, Boolean dropNulls)
final static <T extends Any, C extends Any> DataFrame<T>
mergeRows(DataFrame<T> $self, Boolean dropNulls, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> columns)
-
-
Method Detail
-
getParser
final DataFrameParserOptions getParser()
-
update
final static <T extends Any, C extends Any> UpdateClause<T, C> update(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
-
update
final static <T extends Any, C extends Any> UpdateClause<T, C> update(DataFrame<T> $self, Iterable<ColumnReference<C>> cols)
-
update
final static <T extends Any, C extends Any> UpdateClause<T, C> update(DataFrame<T> $self, KProperty<C> cols)
-
update
final static <T extends Any, C extends Any> UpdateClause<T, C> update(DataFrame<T> $self, ColumnReference<C> cols)
-
update
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> update(DataFrame<T> $self, ColumnReference<C> firstCol, ColumnReference<C> cols, Function2<DataRow<T>, C, R> expression)
-
update
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> update(DataFrame<T> $self, KProperty<C> firstCol, KProperty<C> cols, Function2<DataRow<T>, C, R> expression)
-
update
final static <T extends Any, R extends Any> DataFrame<T> update(DataFrame<T> $self, String firstCol, String cols, Function2<DataRow<T>, Object, R> expression)
-
where
final static <T extends Any, C extends Any> UpdateClause<T, C> where(UpdateClause<T, C> $self, Function2<DataRow<T>, C, Boolean> predicate)
-
at
final static <T extends Any, C extends Any> UpdateClause<T, C> at(UpdateClause<T, C> $self, Collection<Integer> rowIndices)
-
at
final static <T extends Any, C extends Any> UpdateClause<T, C> at(UpdateClause<T, C> $self, Integer rowIndices)
-
at
final static <T extends Any, C extends Any> UpdateClause<T, C> at(UpdateClause<T, C> $self, IntRange rowRange)
-
guessTypes
final static <T extends Any, C extends Any> UpdateClause<T, C> guessTypes(UpdateClause<T, C> $self)
-
toType
final static <T extends Any, C extends Any> UpdateClause<T, C> toType(UpdateClause<T, C> $self, KType type)
-
suggestTypes
final static <T extends Any, C extends Any> UpdateClause<T, C> suggestTypes(UpdateClause<T, C> $self, Pair<KClass<?>, KType> suggestions)
-
withRowCol
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> withRowCol(UpdateClause<T, C> $self, Function2<DataRow<T>, DataColumn<C>, R> expression)
-
with
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> with(UpdateClause<T, C> $self, KType targetType, Function2<DataRow<T>, C, R> expression)
-
with
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> with(UpdateClause<T, C> $self, Function2<DataRow<T>, C, R> expression)
-
with
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> with(UpdateClause<T, C> $self, R value)
-
with
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> with(ConvertClause<T, C> $self, Function2<DataRow<T>, C, R> rowConverter)
-
with
final static <T extends Any, C extends Any, R extends Any> SplitWithTransform<T, C, R> with(Split<T, C> $self, Function1<C, Iterable<R>> splitter)
-
withExpression
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> withExpression(UpdateClause<T, C> $self, Function2<DataRow<T>, C, R> expression)
-
notNull
final static <T extends Any, C extends Any> UpdateClause<T, C> notNull(UpdateClause<T, C> $self)
-
notNull
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> notNull(UpdateClause<T, C> $self, Function2<DataRow<T>, C, R> expression)
-
withNull
final static <T extends Any, C extends Any> DataFrame<T> withNull(UpdateClause<T, C> $self)
-
convert
final static <T extends Any, C extends Any> ConvertClause<T, C> convert(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
-
convert
final static <T extends Any, C extends Any> ConvertClause<T, C> convert(DataFrame<T> $self, KProperty<C> columns)
-
convert
final static <T extends Any> ConvertClause<T, Object> convert(DataFrame<T> $self, String columns)
-
convert
final static <T extends Any, C extends Any> ConvertClause<T, C> convert(DataFrame<T> $self, ColumnReference<C> columns)
-
to
final static <T extends Any> DataFrame<T> to(ConvertClause<T, ?> $self, KType type)
-
to
final static <T extends Any, C extends Any> DataFrame<T> to(ConvertClause<T, C> $self, Function1<DataColumn<C>, DataColumn<?>> columnConverter)
-
convertTo
final static <C extends Any> DataColumn<C> convertTo(DataColumn<?> $self)
-
convertTo
final static DataColumn<?> convertTo(DataColumn<?> $self, KType newType)
-
convertToDateTime
final static DataColumn<LocalDateTime> convertToDateTime(DataColumn<?> $self)
-
convertToDate
final static DataColumn<LocalDate> convertToDate(DataColumn<?> $self)
-
convertToTime
final static DataColumn<LocalTime> convertToTime(DataColumn<?> $self)
-
convertToInt
final static DataColumn<Integer> convertToInt(DataColumn<?> $self)
-
convertToString
final static DataColumn<String> convertToString(DataColumn<?> $self)
-
convertToDouble
final static DataColumn<Double> convertToDouble(DataColumn<?> $self)
-
toInt
final static <T extends Any> DataFrame<T> toInt(ConvertClause<T, ?> $self)
-
toDouble
final static <T extends Any> DataFrame<T> toDouble(ConvertClause<T, ?> $self)
-
toFloat
final static <T extends Any> DataFrame<T> toFloat(ConvertClause<T, ?> $self)
-
toStr
final static <T extends Any> DataFrame<T> toStr(ConvertClause<T, ?> $self)
-
toLong
final static <T extends Any> DataFrame<T> toLong(ConvertClause<T, ?> $self)
-
toBigDecimal
final static <T extends Any> DataFrame<T> toBigDecimal(ConvertClause<T, ?> $self)
-
toDate
final static <T extends Any> DataFrame<T> toDate(ConvertClause<T, ?> $self, ZoneId zone)
-
toTime
final static <T extends Any> DataFrame<T> toTime(ConvertClause<T, ?> $self, ZoneId zone)
-
toDateTime
final static <T extends Any> DataFrame<T> toDateTime(ConvertClause<T, ?> $self, ZoneId zone)
-
toDataFrames
final static <T extends Any, C extends Any> DataFrame<T> toDataFrames(ConvertClause<T, Many<Many<C>>> $self, Boolean containsColumns)
-
toDataFrames
final static <T extends Any> DataColumn<DataFrame<?>> toDataFrames(DataColumn<Many<Many<T>>> $self, Boolean containsColumns)
-
toLocalDate
final static DataColumn<LocalDate> toLocalDate(DataColumn<?> $self, ZoneId zone)
-
toLocalDateTime
final static DataColumn<LocalDateTime> toLocalDateTime(DataColumn<?> $self, ZoneId zone)
-
toLocalTime
final static DataColumn<LocalTime> toLocalTime(DataColumn<?> $self, ZoneId zone)
-
tryParse
final static DataColumn<?> tryParse(DataColumn<String> $self)
-
parse
final static <T extends Any> DataFrame<T> parse(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<Object>> columns)
-
parse
final static DataColumn<?> parse(DataColumn<String> $self)
-
tryParseAnyFrame?
final static DataColumn<DataFrame<?>> tryParseAnyFrame?(DataColumn<DataFrame<?>> $self)
-
split
final static <T extends Any, C extends Any> Split<T, C> split(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
-
split
final static <T extends Any, C extends Any> Split<T, C> split(DataFrame<T> $self, ColumnReference<C> column)
-
split
final static <T extends Any, C extends Any> Split<T, C> split(DataFrame<T> $self, KProperty<C> column)
-
into
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> into(SplitWithTransform<T, C, R> $self, ColumnReference<?> firstName, ColumnReference<?> otherNames)
-
into
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> into(SplitWithTransform<T, C, R> $self, String names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
-
into
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> into(SplitWithTransform<T, C, R> $self, List<String> names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
-
into
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T> into(Split<T, C> $self, String names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
-
intoTC
final static <T extends Any> DataFrame<T> intoTC(Split<T, String> $self, String names, Function2<ColumnWithPath<String>, Integer, String> extraNamesGenerator)
-
into
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> into(MergeClause<T, C, R> $self, String columnName)
-
into
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> into(MergeClause<T, C, R> $self, ColumnPath columnPath)
-
intoMany
final static <T extends Any, C extends Any, R extends Any> DataFrame<T> intoMany(SplitWithTransform<T, C, R> $self, Function2<ColumnWithPath<C>, Integer, List<String>> namesProvider)
-
intoRowsTC
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T> intoRowsTC(Split<T, C> $self, Boolean dropEmpty)
-
intoRowsFrame
final static <T extends Any> DataFrame<T> intoRowsFrame(Split<T, DataFrame<?>> $self, Boolean dropEmpty)
-
inplaceTC
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T> inplaceTC(Split<T, C> $self)
-
inward
final static <T extends Any, C extends Iterable<R>, R extends Any> DataFrame<T> inward(Split<T, C> $self, String names, Function2<ColumnWithPath<C>, Integer, String> extraNamesGenerator)
-
merge
final static <T extends Any, C extends Any> MergeClause<T, C, Iterable<C>> merge(DataFrame<T> $self, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> selector)
-
asStrings
final static <T extends Any, C extends Any, R extends Any> MergeClause<T, C, String> asStrings(MergeClause<T, C, R> $self)
-
by
final static <T extends Any, C extends Any, R extends Any> MergeClause<T, C, String> by(MergeClause<T, C, R> $self, CharSequence separator, CharSequence prefix, CharSequence postfix, Integer limit, CharSequence truncated)
-
by
final static <T extends Any, C extends Any, R extends Any, V extends Any> MergeClause<T, C, V> by(MergeClause<T, C, R> $self, Function1<R, V> transform)
-
explode
final static <T extends Any> DataFrame<T> explode(DataFrame<T> $self, ColumnReference<?> columns, Boolean dropEmpty)
-
explode
final static <T extends Any> DataFrame<T> explode(DataFrame<T> $self, String columns, Boolean dropEmpty)
-
explode
final static <T extends Any> DataFrame<T> explode(DataFrame<T> $self, Boolean dropEmpty, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<?>> selector)
-
mergeRows
final static <T extends Any> DataFrame<T> mergeRows(DataFrame<T> $self, String columns, Boolean dropNulls)
-
mergeRows
final static <T extends Any> DataFrame<T> mergeRows(DataFrame<T> $self, ColumnReference<?> columns, Boolean dropNulls)
-
mergeRows
final static <T extends Any, C extends Any> DataFrame<T> mergeRows(DataFrame<T> $self, KProperty<C> columns, Boolean dropNulls)
-
mergeRows
final static <T extends Any, C extends Any> DataFrame<T> mergeRows(DataFrame<T> $self, Boolean dropNulls, Function2<ColumnsSelectionDsl<T>, ColumnsSelectionDsl<T>, ColumnSet<C>> columns)
-
-
-
-