【问题标题】:How can I access values in a scala.collection.mutable.WrappedArray of WrappedArray's in java如何在 java 中访问 WrappedArray 的 scala.collection.mutable.WrappedArray 中的值
【发布时间】:2016-03-07 01:21:41
【问题描述】:

我正在用 JAVA 解析 SparkSQL 中的 json 文件,我需要能够访问以 WrappedArrays 的 WrappedArray 返回的坐标。代码如下:

df.registerTempTable("test_articles");
sql = "select gnip.profileLocations.geo.coordinates FROM test_articles";
DataFrame testData = sqlContext.sql(sql);
Row [] rowArray = testData.collect();

for(Row r:rowArray)
{
    if(r.get(0)!=null)
        System.out.println(r.get(0).toString());                
}

输出:WrappedArray(WrappedArray(30.74806, 40.79944))

文件.json

"gnip": {
    "profileLocations": [{
        "objectType": "place",
        "geo": {
            "type": "point",
            "coordinates": [132.56111,
            35.07693]
        }
    }]
}

【问题讨论】:

  • 你想要一个 WrappedArray 的 WrappedArrays 还是你想要平展 WrappedArray?
  • 如何在不爆炸的情况下获得扁平的包装数组?例如。 {a,b} 和 {b,c} 的 collect_set 给出 {{a,b}, {b,c}},如何获得 {a,b,c}?

标签: java json scala apache-spark


【解决方案1】:

Spark SQL Row 有 getList 方法,它返回一个 Java 列表而不是 WrappedArray。所以,在上面的例子中,可以说r.getList(0)

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 2017-11-12
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2019-07-25
    • 2021-10-08
    相关资源
    最近更新 更多