【发布时间】:2017-05-31 21:46:32
【问题描述】:
我正在尝试访问 hive parquet 表并将其加载到 Pandas 数据框。我正在使用 pyspark,我的代码如下:
import pyspark
import pandas
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import HiveContext
conf = (SparkConf().set("spark.driver.maxResultSize", "10g").setAppName("buyclick").setMaster('yarn-client').set("spark.driver.memory", "4g").set("spark.driver.cores","4").set("spark.executor.memory", "4g").set("spark.executor.cores","4").set("spark.executor.extraJavaOptions","-XX:-UseCompressedOops"))
sc = SparkContext(conf=conf)
sqlContext = HiveContext(sc)
results = sqlContext.sql("select * from buy_click_p")
res_pdf = results.toPandas()
这一直失败,所以我更改为 conf 参数,并且每次它都因为 Java 堆问题而失败:
线程“task-result-getter-2”java.lang.OutOfMemoryError 中的异常:Java 堆空间
这里有一些关于环境的其他信息:
Cloudera CDH version : 5.9.0
Hive version : 1.1.0
Spark Version : 1.6.0
Hive table size : hadoop fs -du -s -h /path/to/hive/table/folder --> 381.6 M 763.2 M
Free memory on box : free -m
total used free shared buffers cached
Mem: 23545 11721 11824 12 258 1773
【问题讨论】:
-
以下帖子可能会有所帮助。 stackoverflow.com/questions/47536123/…
标签: apache-spark pyspark heap-memory