问题
我希望将UDF的返回值添加到seperate列中的现有dataframe中。我如何以足智多谋的方式实现这一点?
from pyspark.sql.functions import udf
from pyspark.sql.types import ArrayType, StructType, StructField, IntegerType
df = spark.createDataFrame([("Alive",4)],["Name","Number"])
df.show(1)
+-----+------+
| Name|Number|
+-----+------+
|Alive| 4|
+-----+------+
def example(n):
return [[n+2], [n-2]]
# schema = StructType([
# StructField("Out1", ArrayType(IntegerType()), False),
# StructField("Out2", ArrayType(IntegerType()), False)])
example_udf = udf(example)
newDF = df.withColumn("Output", example_udf(df["Number"]))
newDF.show(1)
+-----+------+----------+
| Name|Number|Output |
+-----+------+----------+
|Alive| 4|[[6], [2]]|
+-----+------+----------+
+-----+------+----+----+
| Name|Number|Out1|Out2|
+-----+------+----+----+
|Alive| 4| 6| 2|
+-----+------+----+----+
Edit:我注释掉了StructType的使用(并编辑了udf赋值),因为示例函数的返回类型不需要使用StructType。但是,如果返回值类似于
return [6,3,2],[4,3,1]
要返回StructType
,只需使用行
df = spark.createDataFrame([("Alive", 4)], ["Name", "Number"])
def example(n):
return Row('Out1', 'Out2')(n + 2, n - 2)
schema = StructType([
StructField("Out1", IntegerType(), False),
StructField("Out2", IntegerType(), False)])
example_udf = f.UserDefinedFunction(example, schema)
newDF = df.withColumn("Output", example_udf(df["Number"]))
newDF = newDF.select("Name", "Number", "Output.*")
newDF.show(truncate=False)
我有一个 功能,请告诉我是否有任何解决方法。 谢谢你。!
问题内容: 如何使用Javascript 添加CSS规则(例如)? 问题答案: 您也可以使用DOM Level 2 CSS接口(MDN)执行此操作: …(除了(自然地)IE8和更早版本以外的所有版本),它使用自己的边际差异措辞: 与createElement-set- innerHTML方法相比,此方法具有理论上的优势,因为您不必担心在innerHTML中放置特殊的HTML字符,但实际上,样式元素
问题内容: 如何使用Dockerfile添加用户-以下内容不起作用。 我完整的Dockerfile: 问题答案: 使用而非交互来添加用户。 以下命令不会创建user。 它将使用用户 请参考Dockerfile用户文档 USER指令设置运行映像时使用的用户名或UID,以及Dockerfile中跟随该映像的所有RUN,CMD和ENTRYPOINT指令。 注意: 确保这是默认外壳程序。 如果使用默认外壳
我有一个观察数据表和是和否的模型。为简单起见,我只假设对组。我浪费了一些分类统计数据,我想控制选择哪一个。我知道如何使用eval做到这一点并将其保存在另一个data.table中,但我想添加到现有的data.table中,因为我每个组只有一行。任何人都可以帮我吗? 首先,我为每个组创建列联表。 然后定义统计数据 如果我使用下面几行,它会给我一个新的数据表: 如何在此示例中使用:=将结果添加到我的旧
我使用laravel框架,也使用ffmpeg PHP库。其实我做了差不多百分之七十的工作。但是我面临的问题是在视频的多个区域显示水印。我做了左上角的水印,在那个视频上运行得很好。但是我想在左上,左下,右下添加水印。我使用这个代码的左上角水印(视频):- 请帮助我如何在这些区域的左上角、左下角和右下角添加水印。提前感谢:)
问题内容: 我试图在没有LTV格式的已签名PDF文档中启用LTV。在所有情况下,我都找到了相同的示例,如链接中所述。如何为时间戳签名启用LTV,启用iText LTV-如何添加更多CRL?,它定义了获得预期结果的过程。碰巧我没有工作,它没有给我任何错误,但是我没有添加LTV。 为什么在执行以下代码时不会给我任何错误,但是我不添加LTV的一些想法。 这是我尝试添加LTV的方法: 我正在使用的版本: