嗨,我正在尝试使用以下代码在google colab上运行pyspark:
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q http://apache.osuosl.org/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz
!tar xf spark-2.4.5-bin-hadoop2.7.tgz
!pip install -q findspark
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-2.4.5-bin-hadoop2.7"
import findspark
findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[*]").getOrCreate()
我遇到以下错误:
/content/spark-2.4.5-bin-hadoop2.7/python/pyspark/java_gateway.py in _launch_gateway(conf, insecure)
106
107 if not os.path.isfile(conn_info_file):
--> 108 raise Exception("Java gateway process exited before sending its port number")
109
110 with open(conn_info_file, "rb") as info:
Exception: Java gateway process exited before sending its port number
注意:我可以将这段代码运行到今天下午,突然这个错误在晚上开始出现
答案 0 :(得分:1)
以下是我一开始的步骤: 1st 删除不必要的 ubuntu 错误或 Java 端口错误
!sudo add-apt-repository --remove ppa:vikoadi/ppa
!sudo apt update
重新开始的第二个代码
!pip install pyspark
来自网站的第三个代码新鲜的java和最新的spark表(如果显示错误,您可以更改链接并选择您喜欢的任何内容)
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q https://www-us.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz
!tar xf spark-3.1.1-bin-hadoop3.2.tgz
!pip install -q findspark
第 4 段代码创建会话或配置您需要的大小或内存,例如 4G
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[*]").getOrCreate()
spark=SparkSession.builder.appName('sol').getOrCreate()
spark.conf.set("spark.driver.memory","4g")
用于检查我的任何数据的会话的第 5 个代码
from google.colab import files
files.upload() #to upload the testing file for example mydata.csv
dataset = spark.read.csv('mydata.csv',inferSchema=True, header =True)
dataset.printSchema()
那我希望一切都好。如果无效,请发表评论
答案 1 :(得分:0)
Google collab已预先安装了Java。因此,如果您只是运行
!pip install pyspark
然后使用spark即可。.不需要findspark或其他不必要的库。
答案 2 :(得分:0)
请检查wget是否正常工作。如果没有,则将最新版本的apache-spark上传到Google驱动器,然后将其解压缩到Google合作伙伴,然后添加给定的路径。您的代码无法正常工作,因为它无法找到spark文件夹。 wget无法正常工作