小编Ahs*_*san的帖子

在Spark中添加12小时到datetime列

我试图搜索相当多,但只能在Spark SQL中找到add_month函数,所以最后在这里打开一个新线程.非常感谢有人提供的任何帮助.

我试图使用sqlContext将小时12,24和48添加到Spark SQL中的日期列.我使用1.6.1版本的Spark,我需要这样的东西:

SELECT N1.subject_id, '12-HOUR' AS notes_period, N1.chartdate_start, N2.chartdate, N2.text
FROM NOTEEVENTS N2,
(SELECT subject_id, MIN(chartdate) chartdate_start
  FROM NOTEEVENTS
  WHERE subject_id = 283
  AND category != 'Discharge summary'
GROUP BY subject_id) N1
WHERE N2.subject_id = N1.subject_id
and n2.chartdate < n1.chartdate_start + interval '1 hour' * 12
Run Code Online (Sandbox Code Playgroud)

请注意最后一个用PostgreSql编写的子句,这是我在Spark SQL中需要的.我真的很感激我能得到的任何帮助.

谢谢.

apache-spark apache-spark-sql

7
推荐指数
3
解决办法
1万
查看次数

套接字编程 - recv()没有正确接收数据

我看过类似的线程,但似乎无法找到任何可以解决我的问题的东西.

我正在编写一个服务器,可以从客户端发送给它的路径发送图像(jpg)文件.我在C中使用send/recv函数.

我一次读取一个数据块的文件,然后将其发送到接收内容的客户端,并将它们写入某个位置以构建文件.

问题是'recv'没有收到'send'发送的字节数.

作为调试的一部分,我尝试了不同的缓冲区大小和'128'缓冲区大小不会给我任何问题,并且文件已成功传输和构建.

但是,对于'32'和'64'位缓冲区,'recv'在最后一个块接收'32'位或'64'位数据,即使服务器发送的数据小于'32'位或' 64位.并且,对于'256','512','1024'等等,'recv'在完全一个响应中仅返回'128'位,即使服务器发送完整的块,即'256'或'512',取决于缓冲区大小.

我会感谢任何有关调试的建议.以下代码仅适用于相关部分,但如果有人需要,我可以提供更多代码.

//客户代码

#define BUFFER_SIZE 4096

#define   HEADER_LEN 512

const char * const scheme = "GETFILE";
const char* const method = "GET";
const char * const end_marker = "\\r\\n\\r\\n";

struct gfcrequest_t
{
    int filelen;
    char cport[12];
    char servIP[50];
    gfstatus_t ret_status;
    char spath[1024];
    int tot_bytes;
    char filecontent[BUFFER_SIZE];

    void (*fl_handler)(void *, size_t, void *);
    void * fDesc;

    void (*head_handler)(void *, size_t, void *);
    void * headarg;

};

static pthread_mutex_t counter_mutex;

gfcrequest_t *gfc;

// get sockaddr, IPv4 …
Run Code Online (Sandbox Code Playgroud)

c sockets

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

c ×1

sockets ×1