草庐IT

hadoop - 使用 pyspark 流式传输到 HBase

网上有大量关于使用Scala使用Spark流批量加载到HBase的信息(thesetwo特别有用)和一些关于Java的信息,但似乎缺乏相关信息与PySpark。所以我的问题是:如何使用PySpark将数据批量加载到HBase?大多数示例在任何语言中都只显示每行被更新的一列。如何在每行中插入多列?我目前的代码如下:if__name__=="__main__":context=SparkContext(appName="PythonHBaseBulkLoader")streamingContext=StreamingContext(context,5)stream=streamingCon

hadoop - Spark 将数据写入分区的 Hive 表非常慢

我想以普通可读文本格式将Spark数据帧存储到Hive表中。为此,我首先做了sqlContext.sql("SETspark.sql.hive.convertMetastoreParquet=false")我的DataFrame是这样的:final_data1_df=sqlContext.sql("selecta,bfromfinal_data")我正在尝试通过以下方式编写它:final_data1_df.write.partitionBy("b").mode("overwrite").saveAsTable("eefe_lstr3.final_data1")但这很慢,甚至比HIVE写

hadoop - 如何在 aws us-east-2 上将 s3a 与 spark 2.1.0 一起使用?

背景我一直在努力为自己获取一个灵活的设置,以便在aws上使用spark和dockerswarm模式。我一直在使用的docker镜像配置为使用最新的spark,当时是2.1.0和Hadoop2.7.3,可在jupyter/pyspark-notebook获得。.这是有效的,我一直在测试我计划使用的各种连接路径。我遇到的问题是与s3交互的正确方式的不确定性。我一直在跟踪如何使用s3a为spark提供依赖项以连接到awss3上的数据。协议(protocol),对比s3n协议(protocol)。我终于找到了hadoopawsguide并认为我正在关注如何提供配置。但是,我仍然收到400Bad

python - Apache Spark 使用的 python 版本

ApacheSpark库支持哪个版本的python(2或3)?如果它支持两个版本,在使用Apache-Spark时使用python2或3是否有任何性能考虑? 最佳答案 至少自Spark1.2.1起,如果未使用PYSPARK_PYTHON或PYSPARK_DRIVER_PYTHON进行设置,则默认Python版本为2.7(参见bin/pyspark)。自Spark1.4.0起支持Python3(参见SPARK-4897和Spark1.4.0releasenotes)。选择一个而不是另一个应该取决于您的要求。阅读ShouldIusePy

hadoop - 由于空间问题导致 Spark 作业失败

我正在使用pyspark在Spark中编写批处理程序。以下是输入文件及其大小base-track.dat(3.9g)base-attribute-link.dat(18g)base-release.dat(543m)这些是每行一条记录的文本文件,每个字段由一个特殊字符分隔(引用代码)我正在对属性链接执行一些过滤操作并将它们分组并与其他表连接。我正在通过spark-submit将此程序提交到一个由Ambari管理的具有9个数据节点的Hadoop集群。每个数据节点包含140GB的RAM和3.5TB的磁盘空间。以下是我的pyspark代码importsysfrompysparkimportS

python - Hive 和 Spark 窗口函数的数据洗牌

对已经在同一节点上的数据使用Hive窗口函数时,是否会发生数据混洗?具体在下面的例子中,在使用窗口函数之前,数据已经被'City'用Sparkrepartition()函数重新分区,这应该确保城市“A”的所有数据在同一节点上共同本地化(假设一个城市的数据可以适合一个节点)。df=sqlContext.createDataFrame([('A','1',2009,"data1"),('A','1',2015,"data2"),('A','22',2015,"data3"),('A','22',2016,"data4"),('BB','333',2014,"data5"),('BB','3

apache-spark - 通过 Spark 加载的表在 Hive 中无法访问

无法从Hive访问通过Spark(pyspark)创建的Hive表。df.write.format("orc").mode("overwrite").saveAsTable("db.table")从Hive访问时出错:Error:java.io.IOException:java.lang.IllegalArgumentException:bucketIdoutofrange:-1(state=,code=0)在Hive中成功创建表,并能够在spark中读回该表。表元数据可访问(在Hive中),表中的数据文件(在hdfs中)目录。Hive表的TBLPROPERTIES是:'bucketi

security - Spark 独立集群的身份验证

我有一个在远程服务器上运行的独立Spark集群,我是Spark的新手。默认情况下,似乎没有身份验证方案保护集群主机的(7077)端口。任何人都可以不受任何限制地简单地向集群提交自己的代码。Sparkdocumentation指出可以使用spark.authenticate.secret参数在独立部署模式下进行身份验证,但并未详细说明应该如何使用它。是否可以使用某种共享secret来阻止任何潜在的攻击者向集群提交任务?谁能解释一下具体是如何配置的? 最佳答案 启用身份验证支持有2个部分:为主人和所有奴隶设置secret在向集群提交作业

Hadoop 纱 : How to limit dynamic self allocation of resources with Spark?

在我们在Yarn下运行的Hadoop集群中,我们遇到了一个问题,即一些“更聪明”的人能够通过在pySparkJupyter笔记本中配置Spark作业来消耗大得多的资源block,例如:conf=(SparkConf().setAppName("name").setMaster("yarn-client").set("spark.executor.instances","1000").set("spark.executor.memory","64g"))sc=SparkContext(conf=conf)这导致了这些人从字面上排挤其他不那么“聪明”的人的情况。有没有办法禁止用户自行分配资

【pyspark从入门到放弃】DataFrame

环境安装pyspark支持通过pypip、conda下载,或者手动下载。笔者通过pipinstall命令从pypip下载并配置安装了3.5.0版本的Spark。创建实例使用spark的第一步就是拿到一个SparkSession对象。最简单的方法是SparkSession.builder.getOrCreate()即,直接使用默认参数创建实例。也可以做一些配置,比如SparkSession.builder\.appName(app_name)\.enableHiveSupport()\.getOrCreate()DataFrame创建DataFrameDataFrame是类似pandas库中的D