我有一个火花数据框如下,并希望分裂成3的空间列。
+------------+
| text|
+------------+
| aaa bb ccc|
+------------+
| aaa bb c d|
+------------+
| aa b|
+------------+
下面是预期的结果。第一项留在text1列,第二项转到text2,其余的都转到text3(如果有)。原始列值可能包含空记录或带有任意数量分隔符的值,分隔符是空格。
+------------+-----+-----+-----+
| text|text1|text2|text3|
+------------+-----+-----+-----+
| aaa bb ccc| aaa | bb | ccc |
+------------+-----+-----+-----+
| aaa bb c d| aaa | bb | c d |
+------------+-----+-----+-----+
| aa b| aa | b | null|
+------------+-----+-----+-----+
| aa | aa |null | null|
+------------+-----+-----+-----+
| | null|null | null|
+------------+-----+-----+-----+
提前感谢!
您可以使用拆分
功能。
arr_cols = [F.split('text', ' ', 3)[i].alias('text' + str(i+1)) for i in range(3)]
df = df.select('text', *arr_cols)
df.show(truncate=False)
我有: 我想要: 似乎在scala中我可以写:< code>df.select($"value。_1 ",$ "值。_2 ",$ "值。_3"),但这在python中是不可能的。 那么有没有好的办法呢?
我有一个数据框架,它有一行和几列。有些列是单个值,有些是列表。所有列表列的长度相同。我想将每个列表列拆分为单独的行,同时保留任何非列表列。 样本DF: 我想要什么: 如果我只有一个列表列,那么只需执行< code>explode就很容易了: 然而,如果我尝试分解<code>c</code>列,我得到的数据帧长度为我想要的平方: 我想要的是-对于每一列,取该列中数组的第n个元素,并将其添加到新行。我
我有一个Pandas DataFrame列,其中包含一个列表中的多个列表。类似于这样: 我想将列表拆分为多列,因此输出应该是这样的: 请帮我做这件事。预先感谢
我正在Spark 3.0.0上执行Spark结构流的示例,为此,我使用了twitter数据。我在Kafka中推送了twitter数据,单个记录如下所示 2020-07-21 10:48:19|1265200268284588034|RT@narendramodi:与@IBM首席执行官@ArvindKrishna先生进行了广泛的互动。我们讨论了几个与技术相关的主题,…|印度海得拉巴 在这里,每个字段
我的问题是如何将一列拆分为多个列。我不知道为什么 不起作用。 例如,我想将“df_test”更改为“df_test2”。我看到了很多使用熊猫模块的例子。还有别的办法吗?提前感谢您。 df_test2
我有一个可能超过1000个字符串的列表,但我不知道具体有多少个。 将此拆分为更小的列表而不丢失列表的任何成员的最佳方法是什么? 例如,如果我有一个成员列表,如何最好地将其拆分为3个几乎大小均匀的列表? 我已经看到了通过分区函数拆分列表的方法,但该函数会将列表拆分为给定大小的块,而不是给定数量的组(子列表)。