import org.apache.spark.sql.Row; //导入方法依赖的package包/类

private void start() {

Dataset householdDf = getHouseholdDataframe();

Dataset populationDf = getPopulationDataframe();

Dataset indexDf = joinHouseholdPopulation(householdDf, populationDf);

Dataset salesDf = getSalesData();

Dataset salesIndexDf = salesDf

.join(indexDf, salesDf.col("zipcode").equalTo(indexDf.col("zipcode")), "left")

.drop(indexDf.col("zipcode"));

salesIndexDf = salesIndexDf.withColumn("revenue_by_inh", salesIndexDf.col("revenue")

.divide(salesIndexDf.col("pop")));

salesIndexDf = salesIndexDf.orderBy(col("revenue_by_inh").desc());

Row bestRow = salesIndexDf.first();

double bestRevenuePerInhabitant = ((BigDecimal) bestRow.getAs("revenue_by_inh"))

.doubleValue();

int populationOfBestRevenuePerInhabitant = bestRow.getAs("pop");

double incomeOfBestRevenuePerInhabitant = bestRow.getAs("income_per_inh");

salesIndexDf = salesIndexDf.withColumn(

"best_revenue_per_inh",

salesIndexDf.col("pop").divide(salesIndexDf.col("pop"))

.multiply(bestRevenuePerInhabitant));

salesIndexDf = salesIndexDf.withColumn(

"pop_of_best",

lit(populationOfBestRevenuePerInhabitant));

salesIndexDf = salesIndexDf.withColumn(

"income_of_best",

lit(incomeOfBestRevenuePerInhabitant));

salesIndexDf = salesIndexDf.withColumn(

"idx_revenue",

salesIndexDf.col("best_revenue_per_inh")

.divide(salesIndexDf.col("revenue_by_inh")));

salesIndexDf = salesIndexDf.withColumn(

"idx_pop",

salesIndexDf.col("pop").divide(salesIndexDf.col("pop_of_best")));

salesIndexDf = salesIndexDf.withColumn(

"idx_income",

salesIndexDf.col("income_per_inh").divide(salesIndexDf.col("income_of_best")));

salesIndexDf = salesIndexDf.withColumn(

"index",

salesIndexDf.col("idx_revenue").multiply(salesIndexDf.col("idx_pop")

.multiply(salesIndexDf.col("idx_income"))));

salesIndexDf = salesIndexDf.withColumn(

"potential_revenue",

salesIndexDf.col("revenue").multiply(salesIndexDf.col("index")));

salesIndexDf = salesIndexDf

.drop("idx_income")

.drop("idx_pop")

.drop("idx_revenue")

.drop("income_of_best")

.drop("total_income")

.drop("revenue_by_inh")

.drop("pop_of_best")

.drop("best_revenue_per_inh")

.orderBy(salesIndexDf.col("potential_revenue").desc());

salesIndexDf.show();

}

java dispo lock_Java Row.getAs方法代码示例相关推荐

  1. java for row_Java Row.getRowNum方法代码示例

    import org.apache.poi.ss.usermodel.Row; //导入方法依赖的package包/类 /** * generates the IDCG and nDCG * @par ...

  2. cdate在java中_Java Calendar.add方法代码示例

    本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...

  3. java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例

    import java.util.concurrent.ConcurrentHashMap; //导入方法依赖的package包/类 /** * 生成更新Sql * @param entity * @ ...

  4. java中setattribute_Java Files.setAttribute方法代码示例

    import java.nio.file.Files; //导入方法依赖的package包/类 @Override public void setFileHiddenAttribute( String ...

  5. java default locale_Java JSON.defaultLocale方法代码示例

    import com.alibaba.fastjson.JSON; //导入方法依赖的package包/类 public void test_time() throws Exception { lon ...

  6. java foreach order_Java Elements.forEach方法代码示例

    import org.jsoup.select.Elements; //导入方法依赖的package包/类 private ArrayList findOrders(String html) { // ...

  7. java sql xml_Java ResultSet.getSQLXML方法代码示例

    import java.sql.ResultSet; //导入方法依赖的package包/类 protected Object processColumn(ResultSet rs, int inde ...

  8. java get timestamp_Java Timestamp.getTime方法代码示例

    import java.sql.Timestamp; //导入方法依赖的package包/类 /** * Tests fix for BUG#5874, timezone correction goe ...

  9. java的setvisible_Java Container.setVisible方法代码示例

    import java.awt.Container; //导入方法依赖的package包/类 public static void loadOptions(final String name, fin ...

最新文章

  1. nordic 51822 sdk. timer 的使用
  2. 操作系统安全加固原理
  3. JVM【带着问题去学习 01】什么是JVM+内存结构+堆内存+堆内存参数(逃逸分析)
  4. COM编程之五 动静态链接
  5. idea启动日志在哪里_牛逼了!用 IDEA 扒出了开源组件导致FGC的原因
  6. 最大限度地降低多线程 C# 代码的复杂性
  7. 增强的Java FTP工具----扩展免费版的edtftpj
  8. html5 自动保存 提示,html5+ SQLite提示数据表不存在
  9. 使用FlexBox和Json实现类似ComboBox(类似Google的输入提示和自动)功能-基于JQuery-ASP.NET...
  10. 《机器学习实战》KNN算法实现
  11. 利用 Finder 清理Mac旧档案,释放空间
  12. 分布式事务之基础概念篇
  13. 《晚明》小说各战役配图
  14. 网络游戏封包基础知识
  15. android 密码输入框 星号,input密码框输入后设置显示为星号或其他样式
  16. html遮罩层动画制作,flash简单制作遮罩动画效果
  17. 内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具
  18. 互动百科创建词条怎么做才能通过审核
  19. 文件末尾eof_什么是EOF(文件末尾)? PHP,C ++,C,Python,Java的示例
  20. 理解华为交换机的三种端口模式

热门文章

  1. 爱帮网遭江苏移动侵权 源自爱帮机器人
  2. 解决电脑按字母键出现数字的方法
  3. maven项目的Archetype常用选择
  4. html实现信封效果,css信封边框效果实现的2种方法
  5. python +flask 制作一个实时热搜采集接口 加入百度热搜和微博热搜 并实时滚动代码 嵌入到你的帝国CMS或WP博客 或任意框架网站
  6. 泰勒公式浅谈原理(转)
  7. 北京大学研制成铷原子钟——三千年误差不到一秒
  8. K8s——kubernetes集群中ceph集群使用【上】
  9. amt是什么意思_汽车中的AT、MT和AMT是什么意思?有什么区别?
  10. 截止2021年企业公众号开通数据(60万+记录)