我有一个以下格式的dataframe
+-------------------------------------------------------------------------------------------------+
|value |
+-------------------------------------------------------------------------------------------------+
|datalake-performance/raw/bamboohr/bamboohr_custom_turnover_data/2020/12/10/11:15.csv |
|datalake-performance/raw/gitlab/002429d9-908c-497b-96ba-67794b31f0cd |
|datalake-performance/processed/bamboohr/employee/04-08-2020/16:23.csv |
|datalake-performance/raw/zoom/user/year=2020/month=09/day=22/a329affc-b1f5-45d1-932a-fbb13d9873d6|
+-------------------------------------------------------------------------------------------------+
我想用以下格式生成一个新列:
newcol
[bamboohr_custom_turnover_data, 2020, 12, 10]
[]
[employee, 04-08-2020]
[user, year=2020, month=09, day=22]
df['value'].str.split('/').str[3:-1]
df = df.withColumn("list", (split(col("value"), "/")))
df.select(slice(df["list"], 3, size(df["list"]) - (3 + 1)))
如何通过PySpark中的[3:-1]
获得切片?
您可以使用Spark SQL函数slice
和size
来实现切片。请注意,Spark SQL数组索引从1开始,而不是从0开始。
df2 = df.selectExpr("slice(split(value, '/'), 4, size(split(value, '/')) - 4) newcol")
df2.show(truncate=False)
+---------------------------------------------+
|newcol |
+---------------------------------------------+
|[bamboohr_custom_turnover_data, 2020, 12, 10]|
|[] |
|[employee, 04-08-2020] |
|[user, year=2020, month=09, day=22] |
+---------------------------------------------+
问题内容: 提取切片的最后一个元素的Go方法是什么? 上面的解决方案有效,但看起来很尴尬。 问题答案: 仅读取切片的最后一个元素: 要删除它: 参见此页面有关切片技巧
提取切片的最后一个元素的方式是什么? 上述解决方案可行,但似乎有些尴尬。
问题内容: 我在做下面的运动。 创建一个包含四个元素的切片。 创建一个新切片,并将第三个和第四个元素仅复制到其中。 我已经返回了以下程序 我程序的输出是。但我希望newElements切片为[3 4]- 我的程序出了什么问题。 问题答案: 使用内置的复制功能将元素从一个切片复制到另一个切片。 在操场上跑 您可以使用append创建切片并在单个语句中复制元素,但是代码并不像使用copy那样明显。 在
问题内容: 我想支持Rtl,并在最后一个片段上设置当前项目,但是当我在自己的代码中编写此代码时,我不知道如何访问最后一个片段。 根据这篇文章,我想让我成为Rtl: MainActivity.java ,我在其中定义: 最后,这是我的视图寻呼机适配器: 问题答案: 因为我用: 在设置适配器之前,它无法正常工作,在设置适配器之后,我应该编写此代码,这要归功于Kevin Chris和K Neeraj L
编辑问题以包括所需的行为、特定问题或错误,以及重现问题所需的最短代码。这将有助于其他人回答这个问题。 我试图在C上创建一个单链表。我用3个函数来创建一个基于“DiseaseList”结构的项目,将该项目添加到列表中,然后打印出来。 我已经花了几个小时梳理这些代码,我似乎无法阻止它将这个列表的开头定位到最后一项。只有两点可以改变头部(其中head=*),但这肯定是对我所写内容的误解,因为我无法理解。
问题内容: 我有一个带有熊猫MultiIndex的数据框: 然后,我从该DataFrame中删除一些行: 但是当我查询MutliIndex时,它仍然在两个国家都处于其水平。 我可以用一种很奇怪的方式自己解决这个问题: 但这似乎很混乱。有什么更好的方法我想念吗? 问题答案: 这是以前咬过我的东西。出于性能和哲学上的考虑,删除列或行不会更改基础MultiIndex,并且正式不将其视为Bug(在此处了解