通过在 Apache Spark Java 中搜索数据集的列 header 来查找列索引
Find column index by searching column header of a Dataset in Apache Spark Java
我有一个类似于以下示例的 Spark 数据集:
0 1 2 3
+------+------------+--------------------+---+
|ItemID|Manufacturer| Category |UPC|
+------+------------+--------------------+---+
| 804| ael|Brush & Broom Han...|123|
| 805| ael|Wheel Brush Parts...|124|
+------+------------+--------------------+---+
我需要通过搜索列 header 来找到列的位置。
例如:
int position=getColumnPosition("Category");
这应该return 2.
Dataset<Row>
数据类型是否支持任何 Spark 函数来查找列索引或任何 java 可以在 Spark 数据集上 运行 的函数?
您需要访问架构并读取字段索引如下:
int position = df.schema().fieldIndex("Category");
你可以考虑这个选项(Scala 实现):
def getColumnPosition(dataframe: DataFrame, colName: String): Int = {
dataframe.columns.indexOf(colName)
}
我为列表使用了索引属性:
df.columns.index(column_name)
我有一个类似于以下示例的 Spark 数据集:
0 1 2 3
+------+------------+--------------------+---+
|ItemID|Manufacturer| Category |UPC|
+------+------------+--------------------+---+
| 804| ael|Brush & Broom Han...|123|
| 805| ael|Wheel Brush Parts...|124|
+------+------------+--------------------+---+
我需要通过搜索列 header 来找到列的位置。
例如:
int position=getColumnPosition("Category");
这应该return 2.
Dataset<Row>
数据类型是否支持任何 Spark 函数来查找列索引或任何 java 可以在 Spark 数据集上 运行 的函数?
您需要访问架构并读取字段索引如下:
int position = df.schema().fieldIndex("Category");
你可以考虑这个选项(Scala 实现):
def getColumnPosition(dataframe: DataFrame, colName: String): Int = {
dataframe.columns.indexOf(colName)
}
我为列表使用了索引属性:
df.columns.index(column_name)