我cogroup
在独立模式下使用功能(两个数据集一个9 GB,另一个110 KB)运行Spark,如下所示:
我有128 GB RAM和24个核心.我的配置是:
set("spark.executor.memory","64g")
set("spark.driver.memory","64g")
Run Code Online (Sandbox Code Playgroud)
IntelliJ VM选项: -Xmx128G
从代码中可以看出,我将数据分成了1000个部分.我也分别尝试了5000和10000,因为countByKey
在我的情况下非常昂贵.
从其他一些StackOverflow帖子我看到了spark.default.parallelism
选项.我该如何调整配置?我是否需要向IntelliJ VM选项添加更多内容?我应该用spark.default.parallelism
吗?
val emp = sc.textFile("\\text1.txt",1000).map{line => val s = line.split("\t"); (s(3),s(1))}
val emp_new = sc.textFile("\\text2.txt",1000).map{line => val s = line.split("\t"); (s(3),s(1))}
val cog = emp.cogroup(emp_new)
val skk = cog.flatMap {
case (key: String, (l1: Iterable[String], l2: Iterable[String])) =>
for { e1 <- l1.toSeq; e2 <- l2.toSeq } yield ((e1, e2), 1)
}
val com = skk.countByKey()
Run Code Online (Sandbox Code Playgroud)
当使用1000和5000个分区时,countByKey
最终会溢出太多,当使用10000分区时,我开始得到一些结果,至少某些任务已完成.但过了一段时间我得到了如下所示的错误: …
我是 Spring Jpa 和 Hibernate 的新手。我正在尝试使用 Oracle 数据库中的自定义函数获取数据。我可以定义一个实体及其相关的服务、实现和存储库。此外,我创建了一个新的自定义 Oracle 方言,registerFunction
如下所示。
所以我有两个问题:
1) 在我的 Oracle 数据库中,该函数位于不同的架构下。我需要指定它的架构吗?如果是这样怎么办?或者休眠会自动找到它?
在提供完整的堆栈跟踪后,我将在本文末尾提出我的第二个问题...
这是我的完整堆栈跟踪:
MyOracle10g 方言
package blog;
import org.hibernate.dialect.Oracle10gDialect;
import org.hibernate.dialect.function.StandardSQLFunction;
public class MyOracle10gDialect extends Oracle10gDialect {
public MyOracle10gDialect() {
super();
registerFunction("my_function", new StandardSQLFunction("my_function"));
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序属性
...
spring.jpa.database-platform=blog.MyOracle10gDialect
...
Run Code Online (Sandbox Code Playgroud)
实体:
package blog.models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "item", schema = "WOS_SOURCE")
public class WosItem {
@Id
@Column(nullable = false)
private String UT;
@Column(nullable = false)
private String …
Run Code Online (Sandbox Code Playgroud) 我有一个数据框如下:
+-----+--------------------+
|LABEL| TERM|
+-----+--------------------+
| 4| inhibitori_effect|
| 4| novel_therapeut|
| 4| antiinflammator...|
| 4| promis_approach|
| 4| cell_function|
| 4| cell_line|
| 4| cancer_cell|
Run Code Online (Sandbox Code Playgroud)
我想通过将所有术语作为序列来创建一个新的数据框,以便可以将它们与Word2vec一起使用。那是:
+-----+--------------------+
|LABEL| TERM|
+-----+--------------------+
| 4| inhibitori_effect, novel_therapeut,..., cell_line |
Run Code Online (Sandbox Code Playgroud)
因此,我想应用此处给出的示例代码:https : //spark.apache.org/docs/latest/ml-features.html#word2vec
到目前为止,我已经尝试将df转换为RDD并将其映射。然后我无法将其重新转换为df。
提前致谢。
编辑:
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.sql.hive.HiveContext
import org.apache.spark.sql.SQLContext
val sc = new SparkContext(conf)
val sqlContext: SQLContext = new HiveContext(sc)
val df = sqlContext.load("jdbc",Map(
"url" -> "jdbc:oracle:thin:...",
"dbtable" -> "table"))
df.show(20)
df.groupBy($"label").agg(collect_list($"term").alias("term"))
Run Code Online (Sandbox Code Playgroud) 我想使用 itextpdf.5.4.1 下载 pdf 文件并将其转换为纯文本。对于其中的大多数,我的代码有效,但对于其中之一,当我尝试读取文件时遇到以下错误。
PdfReader reader = new PdfReader(pdf_file_path);
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Primitive
Run Code Online (Sandbox Code Playgroud)
是不是说这个pdf是受保护的,没有办法提取文本?
我映射从文本文件中获取的数据.文本文件应该有5列.例如
29000000 1 0 2013 1 single-sex
29000000 1 0 2013 1 education
29000000 1 0 2013 1 and
29000000 1 0 2013 1 the
29000000 1 0 2013 1 brain
Run Code Online (Sandbox Code Playgroud)
在我的过程中,我只需要出现在第0和第5列的那些值.所以为了得到我写的以下内容:
val emp =
sc.textFile("\\.txt")
.map{line => val s = line.split("\t"); (s(5),s(0))}
Run Code Online (Sandbox Code Playgroud)
但是,对于某些行,有时可能不存在第5列,我得到了
15/10/12 17:19:33 INFO TaskSetManager:执行者localhost上的阶段0.0(TID 27)中丢失的任务27.0:java.lang.ArrayIndexOutOfBoundsException(5)
那么在我的映射中,如果s(5)存在与否,我应该如何编写if条件?
我是python的新手.试图在我的数据中做一些插补.但是,我无法管理.这是简单的代码:
df['a'] = ""
df.loc[(df['c'] >= 0) & (df['c'] <= 43), 'a'] = 1
df.loc[(df['c'] >= 44) & (df['c'] <= 96), 'a'] = 2
df.loc[(df['c'] >= 97) & (df['c'] <= 151), 'a'] = 3
df.loc[(df['c'] >= 152) & (df['c'] <= 273), 'a'] = 4
print(df[df['a'] == 1]['b'].median())
print(df[df['a'] == 2]['b'].median())
print(df[df['a'] == 3]['b'].median())
print(df[df['a'] == 4]['b'].median())
print(df[df['a'] == 1]['b'].median())
df[df['a'] == 1]['b'].fillna(df[df['a'] == 1]['b'].median(), inplace=True)
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时它发出警告:
A value is trying to be set on a copy of a slice from …
Run Code Online (Sandbox Code Playgroud) apache-spark ×3
scala ×3
java ×2
bouncycastle ×1
dataframe ×1
hibernate ×1
itext ×1
jpa ×1
pandas ×1
pdf ×1
python ×1
spring ×1
spring-boot ×1