通过在Apache Spark Java中搜索数据集的列标题来查找列索引

Shr*_*sha 4 java apache-spark apache-spark-sql apache-spark-dataset

我有一个类似于以下示例的Spark数据集:

       0         1                  2          3
    +------+------------+--------------------+---+
    |ItemID|Manufacturer|       Category     |UPC|
    +------+------------+--------------------+---+
    |   804|         ael|Brush & Broom Han...|123|
    |   805|         ael|Wheel Brush Parts...|124|
    +------+------------+--------------------+---+
Run Code Online (Sandbox Code Playgroud)

我需要通过搜索列标题来查找列的位置.

例如:

int position=getColumnPosition("Category");
Run Code Online (Sandbox Code Playgroud)

这应该返回2.

是否有Dataset<Row>数据类型支持的Spark函数来查找列索引或可以在Spark数据集上运行的任何java函数?

sha*_*nts 12

您需要访问模式并读取字段索引,如下所示:

int position = df.schema().fieldIndex("Category");
Run Code Online (Sandbox Code Playgroud)

  • 请不要发布只是未格式化的代码,总是欢迎小句解释! (3认同)