Cassandra&Spark:我可以将项目添加到行以从行列表创建数据框

Posted

技术标签:

【中文标题】Cassandra&Spark:我可以将项目添加到行以从行列表创建数据框【英文标题】:Cassandra & Spark: can I add an item to a row to create a dataframe from a list of Rows 【发布时间】:2017-08-25 12:08:28 【问题描述】:

我正在使用 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);

            

我想要一个包含姓名、名字、出生日期和结果的数据框。

如何在行中添加此结果?

有没有更好的方法来做到这一点?

【问题讨论】:

【参考方案1】:

如果您的 api 调用很快并且不需要外部资源(例如与某些休息服务的 http 连接),则可以使用不同的选项:

    withColumn 用 udf 调用你的服务 数据帧上的.map 函数来转换行

如果api调用涉及外部资源:

    致电mapPartitions 并在那里建立您的联系。

【讨论】:

以上是关于Cassandra&Spark:我可以将项目添加到行以从行列表创建数据框的主要内容,如果未能解决你的问题,请参考以下文章

CSV 到 RDD 到 Apache Spark 中的 Cassandra 存储

EMR LinkageError 上的 Spark + Cassandra

Spark DataFrame 到 Avro 并将 AVRO 文件保存到 Cassandra 表

Maven 版本依赖

带有 Cassandra 的 Apache Spark 1.5:类转换异常

我可以在 cassandra 数据库上使用 spark hivecontext 吗?