小编use*_*118的帖子

在PySpark中爆炸

我想从包含单词列表的DataFrame转换为DataFrame,每个单词都在自己的行中.

如何在DataFrame中的列上进行爆炸?

下面是我的一些尝试示例,您可以在其中取消注释每个代码行并获取以下注释中列出的错误.我在Python 2.7中使用PySpark和Spark 1.6.1.

from pyspark.sql.functions import split, explode
DF = sqlContext.createDataFrame([('cat \n\n elephant rat \n rat cat', )], ['word'])
print 'Dataset:'
DF.show()
print '\n\n Trying to do explode: \n'
DFsplit_explode = (
 DF
 .select(split(DF['word'], ' '))
#  .select(explode(DF['word']))  # AnalysisException: u"cannot resolve 'explode(word)' due to data type mismatch: input to function explode should be array or map type, not StringType;"
#   .map(explode)  # AttributeError: 'PipelinedRDD' object has no attribute 'show'
#   .explode()  # AttributeError: 'DataFrame' object has no …
Run Code Online (Sandbox Code Playgroud)

python apache-spark apache-spark-sql pyspark

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

为什么inspect.currentframe比sys.currentframe慢?_getframe?

跟进这个答案:/sf/answers/1215659301/

在我的 macbook pro 2015(2.8 GHz Intel Core i7)和 python 3.6 上,我得到:

python3 -m timeit -s 'import inspect' 'inspect.currentframe().f_code.co_name'
>>> 1000000 loops, best of 3: 0.428 usec per loop

python3 -m timeit -s 'import sys' 'sys._getframe().f_code.co_name'

>>> 10000000 loops, best of 3: 0.114 usec per loop
Run Code Online (Sandbox Code Playgroud)

使用sys._getframe() 比inspect.currentframe() 快4 倍。

怎么会?

python

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

标签 统计

python ×2

apache-spark ×1

apache-spark-sql ×1

pyspark ×1