当前位置: 首页 > 知识库问答 >
问题:

Windows上的PySpark与PyCharm:java.net.SocketException

仲孙英才
2023-03-14

从昨天开始,我的pySpark代码就面临着一个奇怪的行为。我正在用PyCharm和Spark1.5在windows上工作。

from pyspark.sql import SQLContext
from pyspark import SparkContext
from pyspark import SparkConf, SparkContext

from pyspark.sql import SQLContext

# SQL / Spark context:
conf = (SparkConf().setMaster("local").setAppName("analysis"))#.set("spark.executor.memory", "2g")
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)

# Input CSV files :
inputCsvFile = "survey.csv"
separator = ','

# read the input file into a RDD
rdd = sc.textFile(inputCsvFile).split(separator)
header = rdd.first().split(separator)

# build the Schema: (some basic functions to chreate StructType object with string as default type)
schema = dictSchemaFromColumnsList(header)
schemaDf = dictSchemaToDFSchema(schema)

# create Dataframe:
df = sqlContext.createDataFrame(rdd, schemaDf)
pprint(rdd.first())
print('\ndf.count()=' + str(df.count()))

# display
df.show()
People=["1,Maj,123","2,Pvt,333","3,Col,999"]
rrd1=sc.parallelize(People)
rrd1.first()

我有时会有代码工作....这使得运行不一致....如有任何建议,将不胜感激...

更新:在回顾问题之后,它看起来是完全相同的行为Matei描述如下。显然,在缩短输入csv文件时,问题得到了解决。

共有1个答案

高运诚
2023-03-14

我在使用(比方说)大文件(20000行)并试图使用regex过滤它们时也遇到了同样的问题:

import re
pattern = re.compile("...")
rdd.filter(lambda x: pattern.search(x) is not None)

而且,正如您所描述的那样,这种行为是断断续续的。在将文件截断到~2000行后,它没有错误地工作。

 类似资料:
  • 2)对于intellij,当我在pyspark中安装并在1中进行必要的设置后,是否还需要进行额外的配置? 太感谢你了。我再次道歉,如果我问了一个愚蠢的问题,请原谅。

  • 背景: 我已经安装了流浪者和虚拟盒子。我不能改变这个设置,因为它非常微妙和重要。 现在当我在windows 10上安装docker时,docker想启用hyper-v,但现在我无法将我的虚拟机升级为流浪者。 问题: 由于docker on mac使用虚拟盒子驱动程序,有没有解决方案让docker在windows上使用虚拟盒子?

  • 我在windows上下载了git,还有一些其他东西,包括GitBash。 虽然我不知道为什么bash终端被包含在“git”中,但它不仅支持git的功能,还支持其他功能,比如mkdir、cp、mv,就像一个真正的linux bash终端一样。 最近我知道了WSL(WindowsLinux子系统),它使bash终端在windows中可用。 git bash在功能上是否不如WSL? 它是否包含一些WSL

  • 问题内容: 我在Elasticsearch中使用Pyspark。我注意到,当您创建RDD时,不会在任何收集,计数或任何其他“最终”操作之前执行该RDD。 当我将转换后的RDD的结果用于其他事情时,是否还有执行和缓存转换后的RDD的方法。 问题答案: 就像我在评论部分所说的那样, Spark中的所有转换都是 惰性的 ,因为它们不会立即计算出结果。相反,他们只记得应用于某些基本数据集(例如文件)的转换

  • 问题内容: 我仅在Windows计算机上运行Selenium网格,资源使用率很高。 我一直在想将Chrome和Firefox放入docker容器中以提高效率的想法。 我的问题是,在不同平台上的浏览器本身是否存在任何主要区别,即Windows上的Chrome的行为与Linux上的Chrome的行为不同还是它们运行相同的代码并具有相同的行为? 问题答案: Selenium倾向于模拟 用户操作 ,其中包

  • 原因:java.io.ioException:未能中止...9更多 原因:java.io.ioException:现有连接被位于sun.nio.ch.socketDispatcher.read0(本机方法)位于sun.nio.ch.socketDispatcher.read(未知源)位于sun.nio.ch.ioutil.readintonativeBuffer(未知源)位于sun.nio.ch.