我想从包含单词列表的DataFrame转换为每个单词都在其自己行中的DataFrame。
如何在DataFrame中的列上爆炸?
这是我尝试的一些示例,您可以在其中取消注释每个代码行并获取以下注释中列出的错误。我在带有Spark 1.6.1的Python 2.7中使用PySpark。
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 attribute 'explode'
).show()
# Trying without split
print '\n\n Only explode: \n'
DFsplit_explode = (
DF
.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;"
).show()
请指教
explode
和split
是SQL函数。两者都在SQL上运行Column
。split
将Java正则表达式作为第二个参数。如果要在任意空格上分离数据,则需要这样的操作:
df = sqlContext.createDataFrame(
[('cat \n\n elephant rat \n rat cat', )], ['word']
)
df.select(explode(split(col("word"), "\s+")).alias("word")).show()
## +--------+
## | word|
## +--------+
## | cat|
## |elephant|
## | rat|
## | rat|
## | cat|
## +--------+
我有一个数据表 而这个结果就在这里 我想爆炸dev_property(列) 怎么爆炸?
我已经用Java编写了这个开关案例程序。但是,while循环没有中断。代码如下: 我不知道,为什么break函数在这个循环中不起作用…请帮帮我..
我有一个模式,其中每行包含多个数组列,我想独立于每个数组列爆炸。 假设我们有列: 我想要一个输出: 想法? (哦,我正在尝试这样做,所以我不必随着模式的变化而更新代码,也因为实际的模式有点大…) PS -支持这个非常相似但不同的问题,我无耻地从这个问题中窃取了示例数据。 编辑:@oliik赢了,但是,如果能用<code>df来实现这一点,那也太棒了。flatMap(主要是因为我仍然不去摸索<cod
这是我在使用大量StackOverflow后的第一个问题,如果我提供的信息不准确或不完整,请更正我 直到本周,我还按照我在互联网上找到的众多指南之一,使用pyspark运行了一个colab笔记本设置,但本周它开始出现一些不同的错误。 使用的代码大致如下: 我已经尝试将Java版本从8更改为11,并在https://downloads.apache.org/spark/上使用所有可用的Spark构建
上面写着 我怎么才能修好这个?是否需要设置一个环境变量来将Python指向pyspark头/库/等?如果我的spark安装是/spark/,我需要包括哪些pyspark路径?或者pyspark程序只能从pyspark解释器运行吗?
我一直在努力研究如何使用maven overlay插件将项目排除在爆炸战争之外。 我有以下内容: xml和applicationcontext.xml可以很好地排除,但它们位于:${basedir}/src/main/webapp/web-inf/下 无论我尝试什么,这些文件是静止的,覆盖,尽管排除。