相关疑难解决方法(0)

如何将PyCharm与PySpark连接?

我是apache spark的新手,显然我在我的macbook中用自制软件安装了apache-spark:

Last login: Fri Jan  8 12:52:04 on console
user@MacBook-Pro-de-User-2:~$ pyspark
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/01/08 14:46:44 INFO SparkContext: Running Spark version 1.5.1
16/01/08 14:46:46 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/01/08 14:46:47 INFO SecurityManager: Changing view acls to: user
16/01/08 14:46:47 INFO …
Run Code Online (Sandbox Code Playgroud)

python homebrew pycharm apache-spark pyspark

71
推荐指数
4
解决办法
7万
查看次数

如何在Apache Spark预构建版本中添加像spark-csv这样的新库

我已经构建了Spark-csv,并且可以使用以下命令从pyspark shell中使用它

bin/spark-shell --packages com.databricks:spark-csv_2.10:1.0.3
Run Code Online (Sandbox Code Playgroud)

得到错误

>>> df_cat.save("k.csv","com.databricks.spark.csv")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/abhishekchoudhary/bigdata/cdh5.2.0/spark-1.3.1/python/pyspark/sql/dataframe.py", line 209, in save
    self._jdf.save(source, jmode, joptions)
  File "/Users/abhishekchoudhary/bigdata/cdh5.2.0/spark-1.3.1/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py", line 538, in __call__
  File "/Users/abhishekchoudhary/bigdata/cdh5.2.0/spark-1.3.1/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError
Run Code Online (Sandbox Code Playgroud)

我应该将jar文件放在我的spark预构建设置中,以便我也可以spark-csv直接从python编辑器访问.

python apache-spark apache-spark-sql

26
推荐指数
3
解决办法
3万
查看次数

将Jar添加到独立的pyspark

我正在推出一个pyspark计划:

$ export SPARK_HOME=
$ export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.9-src.zip
$ python
Run Code Online (Sandbox Code Playgroud)

和py代码:

from pyspark import SparkContext, SparkConf

SparkConf().setAppName("Example").setMaster("local[2]")
sc = SparkContext(conf=conf)
Run Code Online (Sandbox Code Playgroud)

如何添加jar依赖项,例如Databricks csv jar?使用命令行,我可以像这样添加包:

$ pyspark/spark-submit --packages com.databricks:spark-csv_2.10:1.3.0 
Run Code Online (Sandbox Code Playgroud)

但我没有使用任何这些.该程序是一个更大的工作流程的一部分,没有使用spark-submit我应该能够运行我的./foo.py程序,它应该工作.

  • 我知道你可以设置extraClassPath的spark属性,但你必须将JAR文件复制到每个节点?
  • 尝试了conf.set("spark.jars","jar1,jar2"),它们对py4j CNF异常也不起作用

python apache-spark pyspark

16
推荐指数
3
解决办法
2万
查看次数

配置Spark以使用Jupyter Notebook和Anaconda

我花了几天时间试图让Spark与我的Jupyter笔记本和Anaconda一起工作.这是我的.bash_profile的样子:

PATH="/my/path/to/anaconda3/bin:$PATH"

export JAVA_HOME="/my/path/to/jdk"
export PYTHON_PATH="/my/path/to/anaconda3/bin/python"
export PYSPARK_PYTHON="/my/path/to/anaconda3/bin/python"

export PATH=$PATH:/my/path/to/spark-2.1.0-bin-hadoop2.7/bin
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark
export SPARK_HOME=/my/path/to/spark-2.1.0-bin-hadoop2.7
alias pyspark="pyspark --conf spark.local.dir=/home/puifais --num-executors 30 --driver-memory 128g --executor-memory 6g --packages com.databricks:spark-csv_2.11:1.5.0"
Run Code Online (Sandbox Code Playgroud)

当我输入时/my/path/to/spark-2.1.0-bin-hadoop2.7/bin/spark-shell,我可以在命令行shell中启动Spark.输出sc不是空的.它似乎工作正常.

当我输入时pyspark,它会启动我的Jupyter笔记本电脑.当我创建一个新的Python3笔记本时,会出现此错误:

[IPKernelApp] WARNING | Unknown error in handling PYTHONSTARTUP file /my/path/to/spark-2.1.0-bin-hadoop2.7/python/pyspark/shell.py: 
Run Code Online (Sandbox Code Playgroud)

sc在我的笔记本Jupyter是空的.

有谁可以帮助解决这种情况?


只是想澄清一下:错误结束后冒号后面没有任何内容.我也尝试使用这篇文章创建我自己的启动文件,我在这里引用,所以你不必去看那里:

我创建了一个简短的初始化脚本init_spark.py,如下所示:

from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("yarn-client")
sc = SparkContext(conf = conf)
Run Code Online (Sandbox Code Playgroud)

并将其放在〜/ .ipython/profile_default/startup /目录中

当我这样做时,错误变为:

[IPKernelApp] WARNING | Unknown error in handling PYTHONSTARTUP …
Run Code Online (Sandbox Code Playgroud)

python anaconda pyspark jupyter jupyter-notebook

12
推荐指数
2
解决办法
2万
查看次数

在 jupyter notebook 中使用 pyspark 时如何指定驱动程序类路径?

我想在 jupyter notebook 中使用 pyspark 查询 PostgreSQL。我在 StackOverflow 上浏览了很多问题,但没有一个对我有用,主要是因为答案似乎过时了。这是我的最小代码:

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
url = 'jdbc:postgresql://host/dbname'
properties = {'user': 'username', 'password': 'pwd'}
df = spark.read.jdbc(url=url, table='tablename', properties=properties)
Run Code Online (Sandbox Code Playgroud)

从笔记本运行它会引发以下错误:

Py4JJavaError: An error occurred while calling o69.jdbc.
: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:315)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$7.apply(JDBCOptions.scala:85)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$7.apply(JDBCOptions.scala:85)
at scala.Option.getOrElse(Option.scala:121)...
Run Code Online (Sandbox Code Playgroud)

我发现的主要技巧总结在下面的链接中,但不幸的是我无法让它们在我的笔记本中工作:

Pyspark 连接到 ipython notebook 中的 Postgres 数据库

注意:我使用的是 Spark 2.3.1 和 Python 3.6.3,如果我指定了 jar 位置,我可以从 pyspark shell 连接到数据库。

pyspark --driver-class-path /home/.../postgresql.jar --jars /home/.../jars/postgresql.jar
Run Code Online (Sandbox Code Playgroud)

感谢任何可以帮助我解决这个问题的人。

编辑

如何在 IPython Notebook …

python apache-spark pyspark jupyter-notebook

6
推荐指数
1
解决办法
5191
查看次数