小编Aya*_*z49的帖子

我可以在本地计算机上使用 Apache Spark 处理 100 GB 的数据吗?

我有大约 100GB 的用户数据,想要在我的笔记本电脑上使用 Apache Spark 处理它。我已经安装了 Hadoop 和 Spark,为了测试,我将大约 9 GB 的文件上传到 HDFS 并使用pyspak访问和查询它。

当我查询特定用户的数据时,测试文件共有 113959238 条记录/行,即

select * from table where userid=???? 
Run Code Online (Sandbox Code Playgroud)

检索该用户的记录大约需要 6 分钟,如果我运行整个文件,那么将花费很多时间。我对该数据进行的分析是提取用户的记录,对其运行一些操作,然后为文件中的所有用户处理第二个用户的数据,依此类推。用户查询的数据不会太多,因此可以将其加载到内存中并且可以更快地执行操作。但是从这个大文件中查询用户的记录需要时间并且会减慢进程。

据说 Spark 的速度很快,所以我肯定会错过一些东西,这就是为什么它需要花时间。我在执行查询时注意到的一件事是 Spark 没有利用完整的 RAM,而是几乎 100% 的 CPU。

我的机器规格是:

在此输入图像描述

我还使用 Spark 而不是 HDFS 文件直接查询文本文件的数据,但时间上没有太大差异。我写的python代码是

 from pyspark import SparkContext, SparkConf
 from pyspark.sql import SparkSession, HiveContext,SQLContext
 import time
 conf=SparkConf()
 conf.set("spark.executor.memory", "8g")
 conf.set("spark.driver.memory", "8g")
 sparkSession = SparkSession.builder.appName("example-pyspark-read-and-write").getOrCreate()
 sc=sparkSession.sparkContext.getOrCreate(conf)
 sqlContext=SQLContext(sc)
 #df_load = sparkSession.read.format("csv").option("header","true").load("hdfs://0.0.0.0:19000/test.txt")
 df_load = sparkSession.read.format("csv").option("header","true").load("C:/Data/test_file/test.txt")
 table=df_load.registerTempTable('test')
 sp_tstart=time.time()
 df=sqlContext.sql("select * from test where user_id='12345'")
 db=df.rdd.collect() …
Run Code Online (Sandbox Code Playgroud)

python hadoop apache-spark pyspark

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

如何使用expdp导出Oracle中的用户及其角色和系统权限?

我正在尝试使用其角色和系统权限导出 Oracle 中的架构/用户。我不想导出任何数据或任何表。我尝试使用以下命令导出用户。

expdp system/system@gisdblocal include=user DIRECTORY = TestBack  
logfile=test12.log DUMPFILE=test12.dmp SCHEMAS=test_replication
Run Code Online (Sandbox Code Playgroud)

当我将其导入其他数据库或具有不同名称的同一数据库中时,即

impdp system/system@gisdblocal DIRECTORY = TestBack  DUMPFILE = test12.dmp   
SCHEMAS = test_replication REMAP_SCHEMA = 
test_replication:test_replication_copy 
Run Code Online (Sandbox Code Playgroud)

用户或架构已创建,但尚未被授予任何角色或系统权限。

我这样做是因为我使用没有所需权限DATAPUMP_IMP_FULL_DATABASEDATAPUMP_EXP_FULL_DATABASE的用户创建了模式的备份。当我在另一个数据库中恢复该备份时,它说该用户不存在。因此,我想先创建一个具有相同权限的用户,然后再恢复备份。

oracle impdp expdp oracle-dump

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

标签 统计

apache-spark ×1

expdp ×1

hadoop ×1

impdp ×1

oracle ×1

oracle-dump ×1

pyspark ×1

python ×1