大家好,我想在数据帧的每一行中使用现有列添加新列,我正在Spark Scala中尝试这样做。。。df是包含可变列数的数据帧,只能在运行时确定。
// Added new column "docid"
val df_new = appContext.sparkSession.sqlContext.createDataFrame(df.rdd, df.schema.add("docid", DataTypes.StringType))
df_new.map(x => {
import appContext.sparkSession.implicits._
val allVals = (0 to x.size).map(x.get(_)).toSeq
val values = allVals ++ allVals.mkString("_")
Row.fromSeq(values)
})
但这个错误是eclipse本身
请帮忙。
函数对象中的concat_ws
会有所帮助。
此代码添加了docid字段
df = df.withColumn("docid", concat_ws("_", df.columns.map(df.col(_)):_*))
假设df
的所有列都是字符串。
我有一个如下的数据框。我需要在现有列的基础上创建一个新列。 输出数据帧看起来像这样 我用来寻找col3的逻辑是如果col1计数 我熟悉如何在sql中实现这一点。但很难找到数据帧DSL的解决方案。任何帮助都将不胜感激。谢谢
/spark/python/pyspark/sql/dataframe.py“,第1313行,在withColumn assert isinstance(col,Column)中,”col应该是Column“assertionerror:col应该是Column 如何使用自定义函数或randint函数为列生成随机值?
在我的scala程序中,我有一个dataframe,其中有两列和(类型都为)。除此之外,我有一个先前定义的对象和一些方法和属性。在这里,我想要使用dataframe的当前值和中的属性向dataframe添加一个新列。 例如,如果我有下面的dataframe: 谢谢你。
那么,如何使用PySpark向现有的DataFrame添加一个新列(基于Python vector)呢?
初始数据流: 产生的数据frame: 我通常通过使用以下内容将新列“追加”到dataframe:
我尝试使用Apache POI(3.15-Beta2版本,但也尝试过3.14)在XLSX电子表格中的现有表中添加列。使用下面的代码,我设法添加了一列,但它不能完全工作。 Excel 2013在尝试打开文件时出错(我们发现“....XLSX”中的某些内容有问题。是否希望我们尽可能多地恢复?如果信任此工作簿的来源,请单击是。)。如果单击“是”,文件将被打开,表的大小已经成功调整,新内容也被添加,但是列