- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试执行(使用 Pycharm)一些 examples在 python 中使用自包含的 sparks 应用程序。
我使用以下方法安装了 pyspark:
pip install pyspark
根据示例的网络,执行它应该就足够了:
python nameofthefile.py
但是我有这个错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
at org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:611)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:273)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261)
at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:791)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:761)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:634)
at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2422)
at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2422)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2422)
at org.apache.spark.SecurityManager.<init>(SecurityManager.scala:79)
at org.apache.spark.deploy.SparkSubmit.secMgr$lzycompute$1(SparkSubmit.scala:359)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$secMgr$1(SparkSubmit.scala:359)
at org.apache.spark.deploy.SparkSubmit$$anonfun$prepareSubmitEnvironment$7.apply(SparkSubmit.scala:367)
at org.apache.spark.deploy.SparkSubmit$$anonfun$prepareSubmitEnvironment$7.apply(SparkSubmit.scala:367)
at scala.Option.map(Option.scala:146)
at org.apache.spark.deploy.SparkSubmit.prepareSubmitEnvironment(SparkSubmit.scala:366)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:143)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
at java.base/java.lang.String.substring(String.java:1874)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:52)
... 23 more
Traceback (most recent call last):
File "C:/Users/.../PycharmProjects/PoC/Databricks.py", line 4, in <module>
spark = SparkSession.builder.appName("Databricks").getOrCreate()
File "C:\Users\...\Desktop\env\lib\site-packages\pyspark\sql\session.py", line 173, in getOrCreate
sc = SparkContext.getOrCreate(sparkConf)
File "C:\Users\...\Desktop\env\lib\site-packages\pyspark\context.py", line 349, in getOrCreate
SparkContext(conf=conf or SparkConf())
File "C:\Users\...\Desktop\env\lib\site-packages\pyspark\context.py", line 115, in __init__
SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
File "C:\Users\...\Desktop\env\lib\site-packages\pyspark\context.py", line 298, in _ensure_initialized
SparkContext._gateway = gateway or launch_gateway(conf)
File "C:\Users\...\Desktop\env\lib\site-packages\pyspark\java_gateway.py", line 94, in launch_gateway
raise Exception("Java gateway process exited before sending its port number")
Exception: Java gateway process exited before sending its port number
有什么问题吗?
EXTRA
根据您可以找到解决方案的帖子,对于我的情况,我不得不从 jdk-11 更改为 jdk1.8。
现在我可以运行示例代码了,但是有一个错误(不会阻止它运行)
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:379)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:394)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:387)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
at org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:611)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:273)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261)
at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:791)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:761)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:634)
at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2422)
at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2422)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2422)
at org.apache.spark.SecurityManager.<init>(SecurityManager.scala:79)
at org.apache.spark.deploy.SparkSubmit.secMgr$lzycompute$1(SparkSubmit.scala:359)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$secMgr$1(SparkSubmit.scala:359)
at org.apache.spark.deploy.SparkSubmit$$anonfun$prepareSubmitEnvironment$7.apply(SparkSubmit.scala:367)
at org.apache.spark.deploy.SparkSubmit$$anonfun$prepareSubmitEnvironment$7.apply(SparkSubmit.scala:367)
at scala.Option.map(Option.scala:146)
at org.apache.spark.deploy.SparkSubmit.prepareSubmitEnvironment(SparkSubmit.scala:366)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:143)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
2019-01-24 08:46:16 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Here是这个 Could not locate executable null\bin\winutils.exe
继续,要解决第二个问题,您只需在控制面板中定义 HADOOP_HOME 和 PATH 环境变量,以便任何 Windows 程序都可以使用它们。
最佳答案
简答:
我有一个类似的问题,我通过更改 JAVA_HOME 环境变量配置解决了这个问题。您可以手动添加一个新的用户环境变量 JAVA_HOME 链接到您的 Java 开发工具包的路径(“C:/Progra~1/Java/jdk1.8.0_121”或“C:/Progra~2/Java/jdk1” .8.0_121”(如果它安装在 Windows 的“Program Files (x86)”中)。
您也可以在 python 代码的开头尝试这样的事情:
import os
os.environ["JAVA_HOME"] = "C:/Progra~1/Java/jdk1.8.0_121"
(或者,如果您的 JDK 安装在“Program Files (x86)”下,则为“C:/Progra~2/Java/jdk1.8.0_121”
更长的答案:独立于 Pyspark,您是否安装了 Spark 二进制文件(包括 hadoop)?您还需要安装兼容的 java 开发工具包 (JDK)(来自 Spark 2.3.0 的 java 8+)。您还需要配置用户环境变量,例如:JAVA_HOME 与 java 开发工具包的路径SPARK_HOME 与 SPARK 二进制文件的路径HADOOP_HOME 与 hadoop 二进制文件的路径
你可以用 python 做这样的事情:
import os
os.environ["JAVA_HOME"] = "C:/Progra~2/Java/jdk1.8.0_121"
os.environ["SPARK_HOME"] = "/path/to/spark-2.3.1-bin-hadoop2.7"
然后我推荐使用 findspark(你可以通过 pip install findspark 安装它):https://github.com/minrk/findspark
然后你可以像这样使用它:
import findspark
findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[*]").getOrCreate()
特别是如果你在 Windows 上,JAVA_HOME 应该是这样的:
C:\Progra~1\Java\jdk1.8.0_121
并且,“如果 JDK 安装在\Program Files (x86) 下,则将 Progra~1 部分替换为 Progra~2。”
在Windows上安装的详细信息可以在这里找到(它是针对jupyter的,但是spark和pyspark的安装是一样的): https://changhsinlee.com/install-pyspark-windows-jupyter/
希望对你有帮助祝你好运,祝你度过愉快的一天/晚上!
关于python - Pycharm:Java 网关进程在发送其端口号之前退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331175/
我知道可以在类型前添加#noinspection PyPep8Naming,但我想不通如何为单个文件全局设置。 我发现此功能适用于 some other JetBrains IDEs , 但未能在 P
我认为,在 PyCharm 的模块中重构函数名称通常会在项目范围内重构对该函数名称的任何使用。但是,我注意到项目中的笔记本中的功能没有被重构。重构时有没有办法包含笔记本? 我注意到 jupyter n
我需要使用 HTMLTestRunner 生成测试报告,因为该代码(位于文件末尾)是: suite = unittest.TestLoader().loadTestsFromTestCase(Test
Local History 是 Jetbrains IDE 系列(包括 Pycharm)绝对基础/关键的功能。为什么 .ipynb 文件会丢失?这是右键单击/上下文菜单 - 其中缺少 Show His
正如问题所问,如何在整个项目中的pycharm中运行查找/替换单词? 最佳答案 Edit | Find | Replace in Path。 快捷方式:Ctrl + Shift + R 关于pycha
我最近从 Spyder 更改为 PyCharm 作为 Python IDE。在 Spyder 中,我经常使用变量资源管理器功能(见图)。 PyCharm 中也提供此功能吗? 我找到了这个here ,“
嗨,我正在使用 pycharm 进行 python 开发。在 pycharm 中打开我的 python 项目时,它的打开方式如下图所示,其中我的项目名称是election,在此之前出现的选项卡都是父目
在 PyCharm 中,我的项目窗口中有一个文件夹是红色的。当所有其他文件夹都是蓝色时,该颜色意味着什么?我在 Git 中有我的项目,它主要是 Python,在 repo 中有一个 Java GUI。
我在我的 PyCharm 项目/文件栏中看到了这个: 我不确定这意味着什么,也不知道我为什么要这么做。谷歌搜索似乎没有提供任何有用的信息。有谁知道它是什么以及如何删除它?此外,项目中没有其他数字(没有
似乎 Pycharm 中的折叠自定义区域在某些缩进级别后不起作用。 这个不起作用: def test_a(): def function(): for g in group:
每当我创建一个函数、将其设为 View 并将模板映射到其上时,PyCharm 中的自动完成功能都会起作用。如果您输入类似 {{ book. }},其中 book 是一个模型,并且是您的上下文对象之一,
很长一段时间以来,我一直在寻找一种在 PyCharm 中折叠评论的方法。基本上我一直在寻找一种方法来实现与代码块相同的 + 注释。 最佳答案 用很容易做到这一点 #region Description
我正在使用 PyCharm 社区版 2016,我注意到我无法打开大数据输入文件或日志 (20MB)。编辑器只是说“文件 XXX 太大 (SIZE)”。 不仅如此,似乎也没有办法改变极限。官方文档提到了
在 PyCharm 中,我的项目窗口中有一个文件夹是红色的。当所有其他文件夹都是蓝色时,该颜色意味着什么?我在 Git 中有我的项目,它主要是 Python,在 repo 中有一个 Java GUI。
我想为 Pycharm 中的每个项目使用单独的虚拟环境。为此,我为每个项目创建了一个虚拟环境。我找不到清晰的文档 如果我想通过 PIP 命令添加或删除内容时需要为每个项目激活/停用这些虚拟环境,或者在
PyCharm 中是否有智能区分大小写搜索? 过去,我使用了一个编辑器,如果我使用小写字母,它会进行不区分大小写的搜索。 一旦我使用了第一个大写字符,搜索就区分大小写。 我喜欢这个。 我可以在 PyC
我已经按照 https://www.jetbrains.com/help/pycharm/requirements-installation-and-launching.html#linux 上的说明
有什么问题? 我在 PyCharm(版本 2016.1.4)中使用远程解释器(不是调试服务器!)进行远程调试,如下所述:jetbrains website . 当我在 Debug模式下运行时,程序会在
tldr;我希望我可以进入一个特定的程序状态,然后停止,然后继续编辑同一个文件,并使用这个过程迭代地向文件添加代码。 详情: 我经常想做的是使用python控制台或者在特定的程序状态下运行一段特定的代
有没有办法选择 PyCharm 中当前选定行下方的所有行(类似于在 Mac 中您可以使用 Cmd + Shift + down 选择行)? Cmd + Shift + right/left 工作正常,
我是一名优秀的程序员,十分优秀!