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 表