提交 585debc3 编写于 作者: W wizardforcel

2022-01-08 19:14:02

上级 4154f45e
# 本书的目的
# 零、本书的目的
*HDInsight 简洁地*旨在向读者介绍 HDInsight 平台的一些核心概念,并解释如何使用它提供的一些工具来处理数据。这将通过对大量非结构化文本数据执行简单的情感分析过程来证明。
......@@ -9,8 +9,8 @@
* 在 Azure 上设置和管理 HDInsight 集群
* 使用 Azure Blob 存储来存储输入和输出数据
* 了解 PowerShell 在管理集群和执行作业中的作用
* 在 HDInsight 平台上运行用 C#编写的 MapReduce 作业
* 高级语言猪和蜂巢
* 在 HDInsight 平台上运行用 C# 编写的 MapReduce 作业
* 高级语言猪和Hive
* 与微软商业智能工具连接,以检索、丰富和可视化输出
示例过程不会涵盖 HDInsight 中的所有可用功能。在最后一章,这本书将回顾一些以前没有讨论过的特性,这样读者将对平台有一个完整的了解。
......
# 第一章平台概述
# 一、平台概述
## 微软的大数据平台
......
# 第二章情绪分析
# 二、情感分析
为了帮助掌握 HDInsight 中的工具,我们将通过对大量非结构化文本数据应用简单的情感分析过程来演示它们的用法。在这个简短的非技术部分,我们将看看什么是情分析。作为其中的一部分,我们将制定一个简单的方法,当我们探索 HDInsight 的过程中,将会用到这个方法。
为了帮助掌握 HDInsight 中的工具,我们将通过对大量非结构化文本数据应用简单的情感分析过程来演示它们的用法。在这个简短的非技术部分,我们将看看什么是情分析。作为其中的一部分,我们将制定一个简单的方法,当我们探索 HDInsight 的过程中,将会用到这个方法。
## 简单概述
......@@ -13,7 +13,7 @@
游泳池关闭了,虽然有点糟糕。 |
第二步:列出情中被认为“积极”或“消极”的单词:
第二步:列出情中被认为“积极”或“消极”的单词:
| 积极的 | 否定的;消极的;负面的;负的 |
| 好的 | 严重的 |
......@@ -40,15 +40,15 @@
第五步:从正数中减去负数:
| 积极的情 | four |
| 消极情 | one |
| 整体情 | three |
| 积极的情 | four |
| 消极情 | one |
| 整体情 | three |
在这个例子中,总的结果是这个特定文本块的情是积极的,自动化系统可以将这解释为积极的评论。
在这个例子中,总的结果是这个特定文本块的情是积极的,自动化系统可以将这解释为积极的评论。
## 复杂性
上面提出的观点是一种非常简单的情分析方法,因为它不受上下文影响地检查单个单词,并决定它们是积极的还是消极的。例如,考虑这一段:
上面提出的观点是一种非常简单的情分析方法,因为它不受上下文影响地检查单个单词,并决定它们是积极的还是消极的。例如,考虑这一段:
```cs
I think you misunderstand me. I do not hate this and it doesnt make me angry or upset in any way. I just had a terrible journey to work and am feeling a bit sick.
......@@ -61,6 +61,6 @@
这可以通过几种方式来解决。第一种方法是抛开个人风格,根据主观判断对具体的词进行加权。当然,这带来了一个挑战,即单词列表会很长,因此,分配权重将是一项耗时的工作。另外,很有可能在野外不会遇到所有的单词。第二种方法——反映了分析界在处理非绝对规模的结果时使用的一种技术——是简单地使用一种简单的方法,将一个词划分为积极的、消极的,或者在没有分类的情况下,中性的——并将规模问题放在一边。
第三个问题是给定场景中单词的分布和使用。在某些情况下,在被分析的领域中常见的词可能会给出假阳性或假阴性。例如,查看产品评论的泵制造商不应该解释“糟糕”这个词的使用,因为这个词会出现在这些产品性能的描述中。这是一个更容易解决的问题,因为像任何情绪分析的一部分一样,重要的是审查影响情绪的更频繁的单词,以防单词在特定领域中实际上是中性的时侯被评估为这样做。
第三个问题是给定场景中单词的分布和使用。在某些情况下,在被分析的领域中常见的词可能会给出假阳性或假阴性。例如,查看产品评论的泵制造商不应该解释“糟糕”这个词的使用,因为这个词会出现在这些产品性能的描述中。这是一个更容易解决的问题,因为像任何情感分析的一部分一样,重要的是审查影响情感的更频繁的单词,以防单词在特定领域中实际上是中性的时侯被评估为这样做。
关于这个领域的进一步阅读,建议你看看伊利诺伊大学刘冰教授(这个领域的专家)在[http://www.cs.uic.edu/~liub/](http://www.cs.uic.edu/~liub/)的作品。
\ No newline at end of file
# 第三章使用 Azure 上的 HDInsight 平台进行简单的情感分析
# 三、将 Azure 上的 HDInsight 平台用于简单的情感分析
在本书中,我们将讨论如何在 Windows Azure 上使用 HDInsight 平台执行简单的、基于单词的情感分析练习。该过程将包括几个步骤:
* 创建和配置 HDInsight 集群
* 将数据上传到 Azure Blob 存储
* 使用 C#流创建映射器来分解消息中的单个单词
* 使用 C# 流创建映射器来分解消息中的单个单词
* 将该映射器作为 Hadoop 映射减少作业执行
* 使用猪来:
......
# 第 4 章配置 HDInsight 集群
# 四、配置 HDInsight 集群
配置 HDInsight 群集旨在展示云简单快速地交付基础架构的真正能力。调配九节点群集(一个头节点和八个工作节点)的过程只需 15 分钟即可完成。
......
# 第 5 章 HDInsight 和 Windows Azure 存储 Blob
# 五、HDInsight 和 Windows Azure 存储 Blob
## 将数据加载到天青 Blob 存储中
......
# 第 6 章 HDInsight 和 PowerShell
# 六、HDInsight 和 PowerShell
PowerShell 是 Windows 脚本语言,支持对 Windows 环境的操作和自动化。[<sup>【9】</sup>](12.html#_ftn9)它是一个极其强大的实用程序,允许执行从清除本地事件日志到在 Azure 上部署 HDInsight 集群的任务。
......
# 第 7 章使用 C#流构建映射器
# 七、使用 C# 流构建映射器
Hadoop 的一个关键组件是用于处理数据的 MapReduce 框架。其概念是处理数据的代码的执行被发送到计算节点,这使得它成为分布式计算的一个例子。这项工作被划分到执行特定任务的多个作业中。
......@@ -38,13 +38,13 @@ Reducer 相当于 ETL 范例的转换组件。它的工作是处理提供的数
该过程通常使用映射器逐行读取文件块,从每行获取输入数据(STDIN),对其进行处理,并将其作为键/值对发送到 STDOUT。关键字是第一个制表符之前的任何数据以及其后的任何值。然后,Reducer 将使用来自 STDOUT 的数据,并根据需要对其进行处理和显示。
## 用 C#流
## 用 C#
流的一个关键特性是,它允许使用除 Java 之外的语言作为执行映射和缩减任务的可执行文件。因此,C#可执行文件可以在流作业中用作映射器和缩减器。
流的一个关键特性是,它允许使用除 Java 之外的语言作为执行映射和缩减任务的可执行文件。因此,C# 可执行文件可以在流作业中用作映射器和缩减器。
使用控制台。ReadLine()处理输入(来自 STDIN)和控制台。WriteLine()要写输出(到 STDOUT),很容易实现 C#程序来处理数据流。[<sup>【14】</sup>](12.html#_ftn14)
使用控制台。ReadLine()处理输入(来自 STDIN)和控制台。WriteLine()要写输出(到 STDOUT),很容易实现 C# 程序来处理数据流。[<sup>【14】</sup>](12.html#_ftn14)
在这个例子中,编写了一个 C#程序来作为映射器处理原始数据的预处理,进一步的处理由更高级的语言如 Pig 和 Hive 来处理。
在这个例子中,编写了一个 C# 程序来作为映射器处理原始数据的预处理,进一步的处理由更高级的语言如 Pig 和 Hive 来处理。
下面引用的代码可以从[https://bitbucket . org/syncfusiontech/hdinsight-简洁地说/下载](https://bitbucket.org/syncfusiontech/hdinsight-succinctly/downloads)为“Morison _ v2 . zip”。需要一个合适的开发工具(如 Visual Studio)来处理代码。
......@@ -194,7 +194,7 @@ Reducer 相当于 ETL 范例的转换组件。它的工作是处理提供的数
使用压缩输入和压缩输出会带来一些性能影响,需要根据存储和网络流量考虑进行平衡。要在 HDInsight 中全面回顾这些注意事项,建议您阅读微软关于题为“Hadoop 中的压缩”的主题的白皮书(上面表格中的信息取自该白皮书)。[<sup>【17】</sup>](12.html#_ftn17)
映射器是作为标准的 C#控制台应用可执行文件构建的。为了让 Hadoop 作业能够使用它,它需要被加载到作业可以引用该文件的某个地方。Azure Blob 存储显然是处理这个问题的一个方便的地方。
映射器是作为标准的 C# 控制台应用可执行文件构建的。为了让 Hadoop 作业能够使用它,它需要被加载到作业可以引用该文件的某个地方。Azure Blob 存储显然是处理这个问题的一个方便的地方。
加载数据和映射器后,使用 Hadoop 命令行来指定和启动作业。也可以通过 SDK 或 PowerShell 提交作业。
......
# 第八章使用 Pig 处理和丰富数据
# 八、使用 Pig 处理和丰富数据
根据官方[阿帕奇猪项目页面](http://pig.apache.org/):
......@@ -26,7 +26,7 @@
## 引用关系中的已处理数据
我们的第一步是引用 C#映射器和情感关键词列表输出的数据。注意我故意不说*加载*。此时,不会处理任何数据,也不会对源数据进行验证。Pig 仅接收要使用的文件的描述:
我们的第一步是引用 C# 映射器和情感关键词列表输出的数据。注意我故意不说*加载*。此时,不会处理任何数据,也不会对源数据进行验证。Pig 仅接收要使用的文件的描述:
```cs
data_raw = LOAD 'wasb://<container>@<storageaccount>.blob.core.windows.net/user/hadoop/output/Sentiment/part-*' USING PigStorage('|') AS (filename:chararray,message_id:chararray,author_id:chararray,word:chararray);
......@@ -85,7 +85,7 @@ FOREACH 运算符处理数据列以生成输出。在这种情况下:
```
为了给情绪添加一个值用于下游处理,我们给每个列表添加一个情绪值,使用 FOREACH / GENERATE 操作给正词赋值 1,给负词赋值-1:
为了给情感添加一个值用于下游处理,我们给每个列表添加一个情感值,使用 FOREACH / GENERATE 操作给正词赋值 1,给负词赋值-1:
```cs
positive = FOREACH positive_words GENERATE positive AS sentiment_word, 1 AS sentiment_value;
......@@ -93,7 +93,7 @@ FOREACH 运算符处理数据列以生成输出。在这种情况下:
```
最后,我们只需要在下游处理中对一组情词进行操作,我们使用 UNION 语句将这两种关系结合在一起:
最后,我们只需要在下游处理中对一组情词进行操作,我们使用 UNION 语句将这两种关系结合在一起:
```cs
sentiment = UNION positive, negative;
......@@ -113,7 +113,7 @@ FOREACH 运算符处理数据列以生成输出。在这种情况下:
## 汇总数据
下一步是汇总数据,统计积极情。在 Pig 中,分组是执行聚合函数(如 MIN、AVG 或 COUNT)的单独操作,因此首先我们必须对数据进行分组:
下一步是汇总数据,统计积极情。在 Pig 中,分组是执行聚合函数(如 MIN、AVG 或 COUNT)的单独操作,因此首先我们必须对数据进行分组:
```cs
messages_grouped = GROUP messages_joined BY (year, month, day, message_id, author_id);
......@@ -134,7 +134,7 @@ FOREACH 运算符处理数据列以生成输出。在这种情况下:
```
然而,这有点难以理解,因此,出于说明的目的,我们将在下面重申它,缩短源关系名称(分别从 data_clean 到 dc,messages _ joined 到 mj,情到 s),并剥离数据类型:
然而,这有点难以理解,因此,出于说明的目的,我们将在下面重申它,缩短源关系名称(分别从 data_clean 到 dc,messages _ joined 到 mj,情到 s),并剥离数据类型:
```cs
messages_grouped: {
......@@ -199,7 +199,7 @@ STORE 命令将关系的内容发送到文件系统。在这里,我们使用 P
```
接下来,我们需要将数据展平并添加情。请注意,在情感连接中,使用了左连接,因此保留了完整的单词列表(减去映射器过程中删除的单词):
接下来,我们需要将数据展平并添加情。请注意,在情感连接中,使用了左连接,因此保留了完整的单词列表(减去映射器过程中删除的单词):
```cs
words_count_flat = FOREACH words_count GENERATE FLATTEN(words), (int)count;
......
# 第九章使用蜂巢存储输出
# 九、使用Hive存储输出
根据官方[阿帕奇蜂巢项目页面](http://hive.apache.org/):
根据官方[阿帕奇Hive项目页面](http://hive.apache.org/):
[![http://hive.apache.oimg/hive_logo_medium.jpg](img/image009.jpg)](http://hive.apache.org/)
......
# 第 10 章使用微软商业智能套件可视化结果
# 十、使用微软商业智能套件可视化结果
在 Hadoop 上处理数据是故事的重要部分。然而,为了让用户从中获取价值,他们需要能够操纵和可视化它。微软商业智能套件——通过数据建模工具 PowerPivot 和数据可视化工具 power view——通过熟悉的 Excel 界面实现了这一点。
......@@ -12,7 +12,7 @@
只需为客户端机器下载并安装适当的驱动程序。
### 为蜂巢建立一个 DSN
### 为Hive建立一个 DSN
连接到 Hive 的先决条件是设置 Excel 可以引用的 64 位系统数据源名称(DSN)。搜索 ODBC 会出现两个应用:
......@@ -159,7 +159,7 @@ Windows Azure 数据市场上有一个以商业智能为重点的日期表。要
```
这使用一个简单的情绪求和函数,然后除以消息计数,得到每条消息的平均情绪。这是上下文感知的,因此它可以用来确定每个用户的平均情绪或一段时间内的情绪趋势。
这使用一个简单的情感求和函数,然后除以消息计数,得到每条消息的平均情感。这是上下文感知的,因此它可以用来确定每个用户的平均情感或一段时间内的情感趋势。
## 在 PowerView 中可视化
......@@ -187,15 +187,15 @@ Windows Azure 数据市场上有一个以商业智能为重点的日期表。要
图 25: PowerView 示例报告“作者姓名分布”
下一份报告关注与帖子数量相关的情,显示为散点图。由于数据点的数量,会出现一个警告,指示仅显示代表性样本。
下一份报告关注与帖子数量相关的情,显示为散点图。由于数据点的数量,会出现一个警告,指示仅显示代表性样本。
该报告似乎表明,职位长度和职位的整体情之间没有强有力的关系:
该报告似乎表明,职位长度和职位的整体情之间没有强有力的关系:
![](img/image028.jpg)
图 26: PowerView 示例报告“按帖子长度列出的情
图 26: PowerView 示例报告“按帖子长度列出的情
最后一个例子显示了“作者随时间的情”。这可以通过作者使用左边的条形图进行过滤,显示作者的文章数量:
最后一个例子显示了“作者随时间的情”。这可以通过作者使用左边的条形图进行过滤,显示作者的文章数量:
![](img/image029.jpg)
......
# HDInsight 的其他组件
# 十一、HDInsight 的其他组件
HDInsight 还有三个附加组件尚未详细介绍,因为它们是更高级的功能。这些可能会随着平台的发展而改变和扩展。当前的详细信息可以在文档页面上找到,该页面详细说明了 HDInsight 中当前使用的 Hadoop 版本。[<sup>【31】</sup>](12.html#_ftn31)
......
# 尾注
# 十二、尾注
[【1】](01.html#_ftnref1)得律阿德斯项目页面:[http://research.microsoft.com/en-us/projects/dryad/](http://research.microsoft.com/en-us/projects/dryad/)
......@@ -44,7 +44,7 @@
[【22】](08.html#_ftnref22)使用的样本托管在[https://bitbucket . org/syncfusiontech/hdinsight-简洁/下载为阴性. csv](https://bitbucket.org/syncfusiontech/hdinsight-succinctly/downloads%20as%20negative.csv) 和阳性. csv
[[23]](08.html#_ftnref23) 详细信息,请参见“意见词典”(或“意见词典”)一节下的页面[意见挖掘、意见分析和意见垃圾邮件检测](http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html)。该页面是情分析的一些更深层次方面的优秀参考。
[[23]](08.html#_ftnref23) 详细信息,请参见“意见词典”(或“意见词典”)一节下的页面[意见挖掘、意见分析和意见垃圾邮件检测](http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html)。该页面是情分析的一些更深层次方面的优秀参考。
[【24】](08.html#_ftnref24)猪群文件:[http://pig.apache.org/docs/r0.10.0/basic.html#GROUP](http://pig.apache.org/docs/r0.10.0/basic.html%23GROUP)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册