小编Nol*_*ole的帖子

Spark 2.1:将 DataFrame 写入镶木地板文件时内存不足?

我正在尝试将 DataFrame(大约 1400 万行)写入本地镶木地板文件,但这样做总是导致内存不足。我有一张大地图val myMap : Map[String,Seq[Double]],并通过 将该地图用于udf非常大的 DataFrame val newDF = df.withColumn("stuff",udfWithMap)。我有 128G 的可用 RAM,在将 DataFrame 持久保存到 DISK_ONLY 并执行后df.show,我仍然剩余大约 100G 的 RAM。然而,当我尝试时df.write.parquet,Spark 需要的内存量猛增,并且内存不足。我也尝试过广播myMap,但这样做似乎对记忆没有任何影响。问题是什么?

这是我的代码示例:

scala> type LookupMapSeq = (String, Seq[Double])

scala> val myMap = sc.objectFile[LookupMapSeq]("file:///data/dir/myMap").collectAsMap()

/* myMap.size is about 150,000 and each Seq[String] is of size 200 */

scala> val combineudf = functions.udf[Seq[Double], Seq[String]] { v1 =>
  val wordVec = v1.map(y => myMap.getOrElse(y, Seq.fill(200)(0.0)))
  wordVec.foldLeft(Seq.fill(200)(0.0)) { case (acc, …
Run Code Online (Sandbox Code Playgroud)

scala out-of-memory apache-spark apache-spark-sql

5
推荐指数
0
解决办法
1163
查看次数

Python 请求不工作

我有一个简单的 Get 请求,我想使用 Python 的 Request 库。

import requests
HEADERS = {'user-agent': ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)'
                          'AppleWebKit/537.36 (KHTML, like Gecko)'
                          'Chrome/45.0.2454.101 Safari/537.36'),
                          'referer': 'http://stats.nba.com/scores/'}
url = 'http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&EndRange=55800&GameID=0021500281&RangeType=2&Season=2016-17&SeasonType=Regular+Season&StartPeriod=1&StartRange=0'
response = requests.get(url, timeout=5, headers=HEADERS)
Run Code Online (Sandbox Code Playgroud)

但是,当我requests.get拨打电话时,出现错误requests.exceptions.ReadTimeout: HTTPConnectionPool(host='stats.nba.com', port=80): Read timed out. (read timeout=5)。但是我可以将该 url 复制/粘贴到我的浏览器中并查看生成的 JSON。为什么请求无法得到结果?

python python-requests

2
推荐指数
1
解决办法
9812
查看次数

Unix:ls 选择所有文件,但按随机顺序?

由于ls按字母顺序返回文件,有没有办法以随机顺序返回相同的文件?我试图循环遍历目录中的所有文件,但希望它在单独的运行中有所不同。

for i in *.py # Would like order to be random
do
    ...
done
Run Code Online (Sandbox Code Playgroud)

unix ls

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