草庐IT

hadoop - Pyspark:远程Hive仓库位置

我需要从Pyspark读取/写入存储在远程HiveServer中的表。关于这个远程Hive,我只知道它运行在Docker下。从HadoopHue中,我找到了一个iris表的两个url,我尝试从中选择一些数据:我有一个表元存储url:http://xxx.yyy.net:8888/metastore/table/mytest/iris和表格位置url:hdfs://quickstart.cloudera:8020/user/hive/warehouse/mytest.db/iris我不知道为什么最后一个url包含quickstart.cloudera:8020。也许这是因为Hive在Do

hadoop - 可以获取多个输入文件而不在 pyspark 中创建一个 RDD 吗?

在Hadoop中,我可以将应用程序指向一个路径,然后映射器将单独处理文件。我必须以这种方式处理它,因为我需要解析文件名和路径以匹配我直接在映射器中加载的其他文件。在pyspark中,将路径传递给SparkContext的文本文件会创建一个RDD。有什么方法可以在Spark/pyspark中复制相同的Hadoop行为吗? 最佳答案 我希望这能解决您的一些困惑:sparkContext.wholeTextFiles(path)返回一个pairRDD(有用链接:https://www.safaribooksonline.com/libra

linux - 在 Linux 上正确配置 PySpark 和 Anaconda3

以下是我到目前为止采取的步骤:我安装了Anaconda3以及目录$HOME/anaconda3/bin中的所有内容。我进入$HOME/anaconda3/bin并运行命令./condainstall-cconda-forgepyspark。成功了。我没有做任何其他事情。更具体地说,我的.bashrc中没有设置变量这里有一些重要的细节:我在一个运行Hadoop的分布式集群上,所以在我的主文件夹之外可能还有其他我尚未发现但可能需要的目录。我也没有管理员权限。JupyterNotebook运行良好。这是我的目标:目标。按照添加变量或配置一些文件的方式做一些事情,以便我可以在JupyterNo

python - 使用 pyspark 将数据框中的列调用到函数中

我正在尝试将一个列调用到一个函数中。当我尝试以下方式时它的工作df=sqlContext.sql("selectcol1fromsample")defsamp(col1):ifcol1==21:return'A'else:return'B'udfsamp=udf(samp,StringType())df.withColumn("cate",udfsamp("col1")).show()但是当我通过在单独的srcsamp.py文件中定义来调用函数并执行以下操作时fromsrcsampimportsampdf=sqlContext.sql("selectcol1fromsample")sa

python - pyspark 方法只获取更新和新记录

我正在使用pyspark2.1下面是我的数据帧昨天数据DF1,Nagraj,Keshav,2017-11-2000:02:39.867000000,2017-11-2000:02:39.867000000,201711200600382,Raghu,HR,2017-11-2000:02:39.867000000,2017-11-2000:02:39.867000000,20171120060038今日数据DF1,Nagraj,K,2017-11-2100:02:39.867000000,2017-11-2100:02:39.8670000002,Raghu,HR,2017-11-210

在 PySpark 中使用 collect_list 时 Java 内存不足

我目前正在使用PySpark并在包含大约6亿条记录的表上运行查询。该表本身约为300gb。我的查询看起来像这样:selectf1,collect_list(struct(f2,f3))asfdatafromtablegroupby1目前,我收到此错误:#java.lang.OutOfMemoryError:Javaheapspace#-XX:OnOutOfMemoryError="kill-9%p"#Executing/bin/sh-c"kill-91010"...Killed另一件事是(f2,f3)元组的分布不均匀。一些f1可能有100k个这样的元组,而其他一些f1可能只有5个。我怀

apache-spark - 我有一个很大的 hql 查询,我正在使用 pyspark sql 调用它。但是我收到错误,例如 Bad connect ack with firstBadLink error

我知道以前也有人问过这个问题,但我问这个问题是因为我不确定问题是否相同。问题是我使用的是spark-sql,我首先创建了一个表:sqlContext=HiveContext(sc)sqlContext.sql("""droptableifexiststest_table""")sqlContext.sql("""createexternaltabletest_table......)partitionedby('column_name'datatype)storedastextfilelocation'/home/..../test_table'""")Thistablehaslike

apache-spark - PySpark:如何在读取 Parquet 时读取分区列

我将数据存储在Parquet文件和按年、月、日分区的配置单元表中。因此,每个parquet文件都存储在/table_name/year/month/day/文件夹中。我只想读入部分分区的数据。我有如下各个分区的路径列表:paths_to_files=['hdfs://data/table_name/2018/10/29','hdfs://data/table_name/2018/10/30']然后尝试做类似的事情:df=sqlContext.read.format("parquet").load(paths_to_files)但是,我的数据不包含关于年月日的信息,因为这不是数据本身的一

hadoop - 如何使用 Pyspark - Hadoop HDP 2.6.6 将 hdfs 文件与 Wand 一起用于图像转换

我正在尝试将pdf文件转换为图像,然后使用pytesseract对文件进行ocr。我能够在linux本地路径中存在的文件上成功完成此操作,但没有使用hdfs路径。fromwand.imageimportImageaswi>>>wi(filename='hdfs://boboda02.boobo.com:8020/bda/clamsops/raw/personal_brella_test/09_29_2015_090902.pdf',resolution=300)Traceback(mostrecentcalllast):File"",line1,inFile"/home/sam/my_

apache-spark - Pyspark - 按组添加行

在Pyspark2.2中,我实际上是在尝试按用户添加行。如果我的主Dataframe如下所示:main_list=[["a","bb",5],["d","cc",10],["d","bb",11]]main_pd=pd.DataFrame(main_list,columns=['user',"group",'value'])main_df=spark.createDataFrame(main_pd)main_df.show()+----+-----+-----+|user|group|value|+----+-----+-----+|a|bb|5||d|cc|10||d|bb|11|+