Apache spark 将常量结构列添加到Spark数据帧

Apache spark 将常量结构列添加到Spark数据帧,apache-spark,dataframe,apache-spark-sql,spark-dataframe,Apache Spark,Dataframe,Apache Spark Sql,Spark Dataframe,我想从数据库集合中加载一个结构,并将其作为常量列附加到目标DataFrame中的每一行 我可以将我需要的列作为一个数据帧加载一行,然后进行交叉连接将其粘贴到目标的每一行上: val parentCollectionDF=/*。。。从数据库中加载一行*/ val constantCol=broadcastparentCollectionDF.selectmy_列 val结果=childCollectionDF.crossJoinconstantCol 它可以工作,但感觉很浪费:子集合的每一行的数据

我想从数据库集合中加载一个结构,并将其作为常量列附加到目标DataFrame中的每一行

我可以将我需要的列作为一个数据帧加载一行,然后进行交叉连接将其粘贴到目标的每一行上:

val parentCollectionDF=/*。。。从数据库中加载一行*/ val constantCol=broadcastparentCollectionDF.selectmy_列 val结果=childCollectionDF.crossJoinconstantCol 它可以工作,但感觉很浪费:子集合的每一行的数据都是常量,但交叉连接将其复制到每一行

如果我可以硬编码这些值,我可以使用类似childCollection.withColumnmy_column、structlitval1作为field1、litval2作为field2/*等。*/但我事先不知道它们;我需要从父集合加载结构

我要找的是:

childCollection.withColumnmy_列, litparentCollectionDF.selectmy_column.take1.getStruct0 。。。但我可以从中看出,只有基本类型可以用作lit的参数。在这里传递GenericRowWithSchema或case类没有好处

有没有不那么笨拙的方法?Spark 2.1.1,Scala

[编辑:与不同,这说明了如何添加具有文字硬编码常量的结构。需要动态加载My struct。]

的可能副本