我有一个PySpark DataFrame。如何从name
下面的列中截断/删除最后5个字符-
from pyspark.sql.functions import substring, length
valuesCol = [('rose_2012',),('jasmine_2013',),('lily_2014',),('daffodil_2017',),('sunflower_2016',)]
df = sqlContext.createDataFrame(valuesCol,['name'])
df.show()
+--------------+
| name|
+--------------+
| rose_2012|
| jasmine_2013|
| lily_2014|
| daffodil_2017|
|sunflower_2016|
+--------------+
我想创建2列,flower
andyear
列。
预期产量:
+--------------+----+---------+
| name|year| flower|
+--------------+----+---------+
| rose_2012|2012| rose|
| jasmine_2013|2013| jasmine|
| lily_2014|2014| lily|
| daffodil_2017|2017| daffodil|
|sunflower_2016|2016|subflower|
+--------------+----+---------+
year
我创建的列-
df = df.withColumn("year", substring(col("name"),-4,4))
df.show()
+--------------+----+
| name|year|
+--------------+----+
| rose_2012|2012|
| jasmine_2013|2013|
| lily_2014|2014|
| daffodil_2017|2017|
|sunflower_2016|2016|
+--------------+----+
我不知道怎么砍最后五个字符,所以我只有花的名字。我通过调用尝试了类似的方法length
,但这不起作用。
df = df.withColumn("flower",substring(col("name"),0,length(col("name"))-5))
如何创建flower
仅包含花名的列?
您可以使用expr函数
>>> from pyspark.sql.functions import substring, length, col, expr
>>> df = df.withColumn("flower",expr("substring(name, 1, length(name)-5)"))
>>> df.show()
+--------------+----+---------+
| name|year| flower|
+--------------+----+---------+
| rose_2012|2012| rose|
| jasmine_2013|2013| jasmine|
| lily_2014|2014| lily|
| daffodil_2017|2017| daffodil|
|sunflower_2016|2016|sunflower|
+--------------+----+---------+
问题内容: 我有一个SQL列,其中的条目是字符串。我需要在剪掉最后两个字符后显示这些条目,例如,如果该条目应输出。 我尝试研究TRIM,但看起来只有在我们知道最后两个字符是什么的情况下,它才能提供修剪功能。但就我而言,我不知道最后两个数字是什么,只需要丢弃它们即可。 简而言之,什么是MySQL字符串操作可以修剪字符串的最后两个字符? 我必须补充一点,字符串的长度不是固定的。它可以是9个字符,11个
问题内容: 我在本地弄乱了pyspark 1.4中的数据帧,并且在使dropplicates方法起作用时遇到了问题。不断返回错误。我不太确定为什么这样做,因为我似乎遵循最新文档中的语法。似乎我缺少该功能的导入。 问题答案: 这不是导入问题。您只是调用了错误的对象。虽然类为,但应用后为纯Python ,列表不提供方法。您想要的是这样的:
我想从。结果应该是ABC,EFG,XYZ,我想用XSL1.0这样的限制。 我正在尝试使用的XSL
我在R中有一个数据帧,它由大约400个变量(作为列)组成,尽管我只需要25个变量。虽然我知道如何删除特定的列,但由于删除375个变量的不切实际性,是否有任何方法可以删除所有列,但使用变量的字符串名可以删除指定的25个? 谢谢。
如果字符计数超过200,我正在尝试删除UIText字段中的最后一个字符。但它没有效果:
问题内容: 有没有一种快速的方法来删除Swift中String中的最后两个字符?我看到有一个简单的方法来删除最后一个字符作为明确指出这里。您知道如何删除最后两个字符吗?谢谢! 问题答案: 更新: Xcode 9•Swift 4或更高版本 字符串现在符合RangeReplaceableCollection,因此您可以直接在字符串中使用收集方法dropLast,因此不再需要扩展。唯一的区别是它返回一个