Spark cache() 函数与 repartition() 一起使用时不会缓存数据帧。谁能解释为什么会发生这种情况?
编辑:
df.repartition(1000).cache()
df.count()
Run Code Online (Sandbox Code Playgroud)
我尝试过在不同的线路上进行这些操作,效果很好。
编辑:
df2 = df1.repartition(1000)
df2.cache()
df2.count()
Run Code Online (Sandbox Code Playgroud)
我期望数据帧被缓存,但我在 UI 的存储中看不到它
我正在尝试实现 LSH spark 以在包含 50000 行和每行约 5000 个特征的非常大的数据集上为每个用户找到最近的邻居。这是与此相关的代码。
MinHashLSH mh = new MinHashLSH().setNumHashTables(3).setInputCol("features")
.setOutputCol("hashes");
MinHashLSHModel model = mh.fit(dataset);
Dataset<Row> approxSimilarityJoin = model .approxSimilarityJoin(dataset, dataset, config.getJaccardLimit(), "JaccardDistance");
approxSimilarityJoin.show();
Run Code Online (Sandbox Code Playgroud)
作业卡在 approxSimilarityJoin() 函数上,永远不会超出它。请让我知道如何解决它。
由于变量'b'的初始化而出现分段错误.有人请帮帮我.
#include "stdio.h"
#include "string.h"
int main(){
char *z[20], *x, *y = {"abcd"};
int i, j, b = 4;
for (i = 0 ; i < 4 ; i++) {
for (j = 0 ; j < b ; j++) {
*(x + j) = *(y + j + i);
z[i] = x;
printf("%s", z[i]);
printf("\n");
}
b--;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) getFree()我在一个类似问题的答案之一中看到它的功能,但是字符串cpy仍然具有第一次给出的相同字符串它运行的次数,即T次.所以,有人请帮忙.
void getFree(char ** ptr) {
if (*ptr != NULL) {
free(*ptr);
}
return;
}
int main() {
int T, j;
scanf("%d", &T);
for (j = 0; j < T; j++) {
char * cpy,
int count = 0, i = 0, x = 0, k = 0;
cpy = (char*)malloc(500 * sizeof(char));
if (getchar() == '\n') {
do {
*(cpy + i) = getchar();
i++;
} while(*(cpy + i - 1) != '\n');
}
getFree(&cpy);
printf("%s", …Run Code Online (Sandbox Code Playgroud)