我使用的是Spark Java(不是scala或python)。
我有一个dataframe (Dataset<Row>)
,我想从Row访问特定字段。我已经能够得到字段值,如果它是一个字符串,但我不知道该怎么做,如果它是一个长,整数...等。下面是我如何访问它,如果它是一个字符串属性:
final String id = row.getAs("id").toString();
字符串getAs()
Row方法也可以用于其他数据类型吗?我不知道它是否可以正确地键入检索到的值。如果在我查询的数据库中,quantity是Long类型,那么我也想从Row中以Long类型检索它。例如:
final Long quantity = row.getAs("quantity");
型
我看到有像getLong()
,getInt()
这样的Row方法,但我不知道如何使用它们,因为这些方法接受一个int。我只有要访问的值的字段名,因此只能传入字段名字符串。
1条答案
按热度按时间ulydmbyx1#
getAs(column)方法已经给出了列的值的类型,如果你知道它的类型,那么你可以直接转换它来处理它。
字符串
其他方法依赖于值的索引,所以如果你有一个数据集包含这些列:
longId| stringValue
那么你可以用途:
型
查看更多:https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Row.html#getAs(java.lang.String)