擅长:python、mysql、java
<p>请使用<code>lit</code>函数,以便为所有记录生成相同的id。
<code>lit</code>只执行一次函数并获取列值并将其添加到每个记录中。在</p>
<pre><code>>>> df.show(truncate=False)
+ -+
|x |
+ -+
|0 |
|1 |
|2 |
|3 |
|4 |
|5 |
|6 |
|7 |
|8 |
|9 |
+ -+
>>> import uuid
>>> id = str(uuid.uuid4())
>>> df = df.withColumn("id", lit(id))
>>> df.show(truncate=False)
+ -+ +
|x |id |
+ -+ +
|0 |923b69d6-4bee-423d-a892-79162df5684d|
|1 |923b69d6-4bee-423d-a892-79162df5684d|
|2 |923b69d6-4bee-423d-a892-79162df5684d|
|3 |923b69d6-4bee-423d-a892-79162df5684d|
|4 |923b69d6-4bee-423d-a892-79162df5684d|
|5 |923b69d6-4bee-423d-a892-79162df5684d|
|6 |923b69d6-4bee-423d-a892-79162df5684d|
|7 |923b69d6-4bee-423d-a892-79162df5684d|
|8 |923b69d6-4bee-423d-a892-79162df5684d|
|9 |923b69d6-4bee-423d-a892-79162df5684d|
+ -+ +
</code></pre>
<p>使用<code>udf</code>并不能解决函数的问题,因为它对每一行都会被调用,我们最终会为每个调用获得新的uuid。在</p>
^{pr2}$