我有一个DataFrame
,我希望通过一个新列进行扩展。 DateFrame
解释了从Row
创建新的Row
。
我目前的策略是使用Row
中的DataFrame.javaRDD().map(...)
构造新的Row
来传递到Row
调用的地图中,但我担心这可能会产生不必要的成本。
所以我想知道如果不是创建新的Row
,我可以通过附加新字段来扩展现有的 #include <stdio.h>
#include <sys/stat.h>
#include <dirent.h>
int main(int argc,char* argv[])
{
if (argc<2) {
printf("Wrong numer of arguments\n");
return 1;
}
int is_dir (char * filename)
{
struct stat buf;
int ret = stat (filename, & buf);
if (0 == ret)
{
if (buf.st_mode & S_IFDIR)
{
return 0;
}
else
{
return 1;
}
}
return -1;
}
int delete_dir (char * dirname)
{
char chBuf [256];
DIR * dir = NULL;
struct dirent * ptr;
int ret = 0;
dir = opendir (dirname);
if (NULL == dir)
{
return -1;
}
while ((ptr = readdir (dir))!= NULL)
{
ret = strcmp (ptr-> d_name, ".");
if (0 == ret)
{
continue;
}
ret = strcmp (ptr-> d_name, "..");
if (0 == ret)
{
continue;
}
snprintf (chBuf, 256, "%s /%s", dirname, ptr-> d_name);
ret = is_dir (chBuf);
if (0 == ret)
{
ret = delete_dir(chBuf);
if (0!=ret)
{
return -1;
}
}
else if (1 == ret)
{
ret = remove (chBuf);
if (0!=ret)
{
return -1;
}
}
}
closedir (dir);
ret = remove (dirname);
if (0!= ret)
{
return -1;
}
return 0;
}
}
。 datetimepicker = require('eonasdan-bootstrap-datetimepicker')
界面似乎不允许这样做。
答案 0 :(得分:2)
正如@Sachin Janani在评论中提到的那样,你不能修改一行(它是不可变的),但你可以使用DataFrame
- 函数将一列添加到withColumn
。例如,下面的代码将添加一列,其中包含在“text”列中找到的字符串的长度:
val stringLength = udf[Int, String](s => s.length)
val df2 = df1.withColumn("text_length", stringLength(df1("text")))
希望这有帮助。