1.Windows本地调用

1.1python算法库环境安装

python算法中会调用许多额外的其它第三方库,使用pip install xxx安装时会经常因为一些原因(如网络延迟)导致安装失败,这时候可以安装Anaconda3来解决这个问题(Anaconda里面包含了大多数python用到的算法库如numpy、pandas等),下载地址https://www.anaconda.com/products/individual#linux。

安装完成后,配置环境变量,一共有两个,添加到PATH里面,一个是python地址(E:\software\Anaconda3),一个是python算法库路径(E:\software\Anaconda3\Scripts),配置完成后重启电脑生效,可以用简单python算法文件验证一下;

1.2调用代码编写

接着在IDEA的plugins中添加python的插件,编写Scala或Java程序就可以调用了,调用代码如下:

package com.hy.model.actionimport com.hy.model.util.StringUtils
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.spark.deploy.PythonRunner
import org.apache.spark.sql.SparkSessionobject PythonApplication {def main(args: Array[String]) {/* val modelPath = args(0)val pyFiles = args(1)*/val modelPath = "F:\\projectCode\\spark-model\\src\\main\\resources\\Health_singlePV_v1.3.py"val pyFiles = "Health_singlePV_v1.3.py"val ss = SparkSession.builder().config("spark.executorEnv.PYSPARK_PYTHON","python3").config("spark.yarn.appMasterEnv.PYSPARK_PYTHON","python3").appName("RunPythonExample").master("local[2]").getOrCreate()/*** 因为spark 仅仅支持本地支持python文件,所以在每次运行python文件时,需要将hdfs中的python文件先拉到本地临时目录下,等任务结束后删除该文件*/val context = ss.sparkContext//val fileSystem = FileSystem.get(context.hadoopConfiguration)val modelFSpath = new Path(modelPath)val local = "/tmp" + modelPathprintln("local: " + local)val localPath = new Path(local)// fileSystem.copyToLocalFile(false, modelFSpath, localPath, true)runPython(modelPath, pyFiles)ss.stop()}def runPython(pyFilePath: String, pyFiles: String): Unit = {val inputPath = "-i /input"val outputPath = "-o /output"PythonRunner.main(Array(pyFilePath, pyFiles, inputPath, outputPath))}}

2.Linux服务器调用

根据上面Anaconda网址下载linux版本的安装包(是一个大的.sh文件),使用命令bash Anaconda.xxx.sh命令安装,根据提示输入安装指令,最后将python地址添加到环境变量里面,如下:

PATH=$PATH:$HOME/bin:/opt/soft/anaconda3/bin

然后将上面的spark程序打成jar包,执行spark程序即可调用。

Spark Scala/Java调用Python算法文件相关推荐

  1. java调用python算法

    做项目的时候,尤其是java开发时,经常会遇到调用python算法的情况,本人最近在项目中遇到这样一个问题:网页前端设计了一个与用户聊天的对话窗口(类似qq聊天),主要目的是为用户解答一些常见的问题. ...

  2. 在Spark Scala/Java应用中调用Python脚本,会么?

    摘要:本文将介绍如何在 Spark scala 程序中调用 Python 脚本,Spark java程序调用的过程也大体相同. 本文分享自华为云社区<[Spark]如何在Spark Scala/ ...

  3. 教你如何在Spark Scala/Java应用中调用Python脚本

    摘要:本文将介绍如何在 Spark scala 程序中调用 Python 脚本,Spark java程序调用的过程也大体相同. 本文分享自华为云社区<[Spark]如何在Spark Scala/ ...

  4. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  5. java调用python文件的几种方式【超细讲解!】

    java调用python的契机来自于一个项目需要用到算法,但是算法工程师们写的python,于是就有了java后端调用python脚本的需求,中间遇到了许多问题,特此记录整理了一次. 1.java调用 ...

  6. 如何在Java程序中调用Python算法脚本,重点讲Demo,不墨迹理论

    原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 通过本篇,你将初步认识在Java程序中简单调用.py脚本文件的方法,附带入门的Demo实例讲解,更深入的理解还需要进一步学习. 最近 ...

  7. .net core 引用jar_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  8. Java 调用 Python 方法学习笔记

    文章转载自: 作者:IT_xiao_bai                         来源:CSDN                         原文:https://blog.csdn.n ...

  9. Java调用python脚本

    Java调用python脚本 最近也是刚开始学python,所以这里写了一个简单的小方法用Java来调用python脚本.后期再进行更新. 1.Java启动程序的方法 在Java中提供了两种方法来启动 ...

最新文章

  1. 分库分表之 Sharding-JDBC 中间件,看这篇真的够了!
  2. mysql中in的用法总结_MySQL中的find_in_set()函数使用技巧心得与应用场景总结
  3. 关于jetty的那些奇葩问题
  4. S.O.L.I.D.类设计原则
  5. Window下mysql5.7及以上版本插入中文乱码问题
  6. mysql解锁_mysql 解锁
  7. 10-05 Java 内部类概述和讲解
  8. Struts2教程3:struts.xml常用配置解析
  9. 汇编语言典型例子详解_单片机汇编语言经典一百例
  10. 什么是CTI?呼叫中心系统CTI技术的应用
  11. 常见的list转化map 实现
  12. 20 个实例玩转 Java 8 Stream
  13. Pentaho安装与配置
  14. IP获取方法二:太平洋网络IP地址查询Web接口
  15. JAVA课程(零)——课前准备 环境的搭建
  16. 世界环境保护日的志愿者
  17. 微信第三方平台【六】微信开放平台帐号管理
  18. 曾被“霸凌”的两个孩子:电动汽车与分布式数据库
  19. SWUST OJ 616: 排序查找
  20. 关于一个ISE错误XST:899的错误判断的讨论

热门文章

  1. 轮毂、轮辋、轮圈,你还分不清楚?
  2. 17python实操案例四
  3. 2023年网络安全工程师学习教程+资料分享
  4. 对TypeScript版PureMVC的优化
  5. 【教程】Chrome浏览器添加迅雷下载支持
  6. 诺基亚S40V5平台实现后台运行图文教程
  7. Voicemeeter - PC混音器
  8. Openssl 漏洞POC学习
  9. 将树莓派安装到U盘上,并实现扩容
  10. 初识python之画图神器篇