卡桑德拉& Spark:我可以在行中添加项目以从行列表中创建数据框

时间:2017-08-25 12:08:28

标签: java apache-spark cassandra spark-dataframe

我正在使用API​​从数据框中获取结果。

基本上我的数据框包含姓名,名字和出生日期

String myquery = "SELECT name, firstname, dateobirth FROM tableA"

我使用API​​来获取此人的地址(此AP

    > List<Row> dataRows = new ArrayList<Row>();
            dataRows = dframe.collectAsList();*




for (Row row : dataRows){
            requestAnswer = row.getString(0) + " " + row.getString(1) + " " + row.getString(2);
            Result result = myapi(requestanswer);

            if (result.length > 0){

                System.out.println(result);

            }

我希望获得一个名称为firsname,dateofbirth和结果的数据框。

如何在行中添加此结果?

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您的api呼叫很快且不需要外部资源(如与某些休息服务的http连接),则有不同的选项:

  1. withColumn使用udf来呼叫您的服务
  2. .map函数在数据框上转换行
  3. 如果api呼叫涉及外部资源:

    1. 致电mapPartitions并在那里建立您的连接。