{"id":722,"date":"2022-12-20T06:41:34","date_gmt":"2022-12-20T11:41:34","guid":{"rendered":"https:\/\/blogs.mathworks.com\/matlab\/?p=722"},"modified":"2022-12-20T06:57:29","modified_gmt":"2022-12-20T11:57:29","slug":"add-two-lines-to-your-matlab-code-to-make-it-work-with-big-data","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/matlab\/2022\/12\/20\/add-two-lines-to-your-matlab-code-to-make-it-work-with-big-data\/","title":{"rendered":"Add two lines to your MATLAB code to make it work with big data"},"content":{"rendered":"<div class=\"rtcContent\">\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-style: italic;\">Today's guest blogger is Harald Brunnhofer, a Principal Training Engineer at MathWorks. On top of getting thousands of users started with MATLAB or taking their MATLAB skills to the next level, he is the content developer of the <\/span><a href=\"https:\/\/www.mathworks.com\/learn\/training\/accelerating-and-parallelizing-matlab-code.html\"><span style=\"font-style: italic;\">Accelerating and Parallelizing MATLAB Code<\/span><\/a><span style=\"font-style: italic;\"> and <\/span><a href=\"http:\/\/www.mathworks.com\/learn\/training\/processing-big-data-with-matlab.html\"><span style=\"font-style: italic;\">Processing Big Data with MATLAB<\/span><\/a><span style=\"font-style: italic;\"> training courses. <\/span><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">In an earlier post, Mike gave an <a href=\"https:\/\/blogs.mathworks.com\/matlab\/2022\/11\/07\/matlabs-high-performance-computing-hpc-and-big-data-datatypes\/\">overview of MATLAB's High Performance Computing (HPC) and Big Data datatypes<\/a>. Today, I'll be showing you how you can use tall arrays to move from small to big data with minimal changes to your code.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">\"Big data\" is becoming more and more relevant in a variety of industries and applications. For our purpose, this is data that is (far) too large to fit into the memory of a single computer: tens of gigabytes, possibly terabytes or even petabytes (= 1024 terabytes) of data. So what are you going to do if you are getting out-of-memory errors or know very well that you will get these before you even try?<\/div>\r\n<div style=\"margin-bottom: 20px; padding-bottom: 4px;\">\r\n<div style=\"margin: 0px; padding: 10px 0px 10px 5px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: bold; text-align: start;\"><span style=\"font-weight: bold;\">Table of Contents<\/span><\/div>\r\n<div style=\"margin: -1px 0px 0px; padding: 10px 0px 10px 7px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: start;\"><a href=\"#H_BC50459E\">Some general advice for large datasets\r\n<\/a><a href=\"#H_6B6A1158\">Datastores: Good for big and small data\r\n<\/a> <a href=\"#H_AFAFE62B\">Set up the datastore\r\n<\/a> <a href=\"#H_CBD08798\">Import and inspect the data\r\n<\/a> <a href=\"#H_9552FF8C\">Perform the analysis\r\n<\/a><a href=\"#H_599B227A\">Tall Arrays: An easy lazy evaluation framework for handling big data\r\n<\/a> <a href=\"#H_8BD526BA\">Generating some big data for experimenting\r\n<\/a> <a href=\"#H_CEBEB084\">Set up the datastore\r\n<\/a> <a href=\"#H_5C11B920\">Setting up parallel resources\r\n<\/a> <a href=\"#H_36D4BDF6\">Import the data\r\n<\/a> <a href=\"#H_E3F070FE\">Perform the analysis\r\n<\/a> <a href=\"#H_73254EA3\">Getting the results\r\n<\/a> <a href=\"#H_C582BA18\">A slightly different problem\r\n<\/a> <a href=\"#H_340E2D2B\">Delete test big data (optional)\r\n<\/a><a href=\"#H_282781F0\">Summary and Resources\r\n<\/a><a href=\"#H_7AF8FC87\">Supporting functions<\/a><\/div>\r\n<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\r\n<h2 id=\"H_BC50459E\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Some general advice for large datasets<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Even before data gets \"big\", it may be of interest to save memory, time, or both by<\/div>\r\n<ul style=\"margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif; font-size: 14px;\">\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><span style=\"font-weight: bold;\">importing only the data you need<\/span>: If you have tabular data with many columns but only need to work with a few, it is a waste to import the columns that you don't need. For datastores, as shown below, you can use the <span style=\"font-family: monospace;\">SelectedVariableNames<\/span> to choose the variables you'd like to import.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><span style=\"font-weight: bold;\">choosing data types carefully<\/span>: if you have numerical data that can be stored and manipulated in single or integer data types, this saves some memory. If text data can only take a small number of values compared to the size of the data, categorical arrays will save memory as well. For datastores, you can change the data type of a variable using the <span style=\"font-family: monospace;\">TextScanFormats<\/span> or <span style=\"font-family: monospace;\">SelectedFormats<\/span> properties as shown in the <span style=\"font-family: monospace;\">generateBigData<\/span> function at the bottom of this script.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><span style=\"font-weight: bold;\">avoiding unnecessary copies of data<\/span>: what is consuming twice the memory of one large variable? Two variables of the same size. I know that this sounds trivial, but it's easy to escape one's mind. <a href=\"https:\/\/blogs.mathworks.com\/loren\/2007\/03\/22\/in-place-operations-on-data\">In-place operations<\/a> are an advanced way of avoiding variables getting copied.<\/li>\r\n<\/ul>\r\n<h2 id=\"H_6B6A1158\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Datastores: Good for big and small data<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">If you've worked with <span style=\"font-family: monospace;\">.csv<\/span> files or other tabular text files before, chances are you've been using functions like <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readtable.html\">readtable<\/a>, <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readmatrix.html\">readmatrix<\/a> or older functions such as <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/textscan.html\"><span style=\"font-family: monospace;\">textscan<\/span><\/a> or <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/csvread.html\"><span style=\"font-family: monospace;\">csvread<\/span><\/a>. Big data workflows, on the other hand, start with the concept of a <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/what-is-a-datastore.html\"><span style=\"font-family: monospace;\">datastore<\/span><\/a> so we'll start by using a datastore in a small data situation.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">We'll need a data file for our example below. The <span style=\"font-family: monospace;\">airlinesmall.csv<\/span> file which ships with MATLAB \"only\" has a little over 100,000 lines of data, so it will comfortably fit into the memory of a modern computer. Even more so if we only import the columns of the dataset which we actually need. Our objective is to determine the average delay of a flight, depending on the carrier. The example below is written to accommodate much larger datasets, as well.<\/div>\r\n<h3 id=\"H_AFAFE62B\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Set up the datastore<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">A <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/what-is-a-datastore.html\"><span style=\"font-family: monospace;\">datastore<\/span><\/a> is a MATLAB object that refers to one file or, when using <span style=\"font-family: monospace;\">*<\/span> as a wildcard, a set of files. These files can be stored on disk or <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/work-with-remote-data.html\">remotely, e.g. on Amazon S3, Azure Blob Storage, or Hadoop<\/a>. If the data is stored remotely, it is strongly recommended to process the data on the environment that stores it to avoid having to download the data.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">A datastore does not directly read the data. Instead, it holds information about which files to read and how to read them when requested. This is very helpful in iteratively reading a large collection of files instead of loading all of it at once. MATLAB has datastores for various file formats, including <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.tabulartextdatastore.html\">text<\/a>, <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.spreadsheetdatastore.html\">spreadsheet<\/a>, <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.imagedatastore.html\">image<\/a>, <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.parquetdatastore.html\">Parquet<\/a>, and even <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.filedatastore.html\">custom format files<\/a>. For a full list of types of datastores, see <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/select-datastore-for-file-format-or-application.html\">documentation on available datastores<\/a>.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">If the datastore refers to a collection of files, they need to have a comparable structure. For tabular text files or spreadsheets, this means identical column headers.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Name-value pairs can be used to fine-tune settings when creating the datastore, and you can use dot indexing to set or get properties of the datastore after it has been created.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">format <span style=\"color: #a709f5;\">compact<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds = datastore(<span style=\"color: #a709f5;\">\"airlinesmall.csv\"<\/span>, TreatAsMissing=<span style=\"color: #a709f5;\">\"NA\"<\/span>, Delimiter=<span style=\"color: #a709f5;\">\",\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds.SelectedVariableNames = [<span style=\"color: #a709f5;\">\"UniqueCarrier\"<\/span>, <span style=\"color: #a709f5;\">\"ArrDelay\"<\/span>];<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds.SelectedFormats{1} = <span style=\"color: #a709f5;\">'%C'<\/span>;<\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<h3 id=\"H_CBD08798\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Import and inspect the data<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.read.html\"><span style=\"font-family: monospace;\">read<\/span><\/a> command will import a block of data. For tabular text datastores, the <span style=\"font-family: monospace;\">read<\/span> command returns a table. The imported number of lines is determined by the <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.tabulartextdatastore.html#d124e306520\"><span style=\"font-family: monospace;\">ReadSize<\/span><\/a> property. The next call to <span style=\"font-family: monospace;\">read<\/span> will then resume where the previous one left off.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">If all of the data fits into memory at once, you can use the <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.readall.html\">readall<\/a> command to import all data with a single command even when the data is spread across multiple files.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds.ReadSize = <span style=\"color: #a709f5;\">\"file\"<\/span>; <span style=\"color: #008013;\">% for now, we can read an entire file at once<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">data = read(ds);<\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The result is a table with two columns, the carrier and the arrival delay of each flight. Let's look at some lines of it:<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">disp(data(10:20,:))<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_0\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"194\" data-hashorizontaloverflow=\"false\"><strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">UniqueCarrier<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">ArrDelay<\/strong>\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">_____________<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">________<\/strong>\r\nPS 2\r\nPS 16\r\nPS 3\r\nPS 39\r\nTW 57\r\nTW 0\r\nTW -14\r\nTW 15\r\nTW 8\r\nTW 11\r\nTW 3<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">You can find a list of carrier codes and airlines <a href=\"https:\/\/www.bts.gov\/topics\/airlines-and-airports\/airline-codes\">here<\/a>.<\/div>\r\n<h3 id=\"H_9552FF8C\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Perform the analysis<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.groupsummary.html\">groupsummary<\/a> command is a fairly new and convenient way to efficiently analyze data by groups. You can then sort by average arrival delay.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">delayStats = groupsummary(data, <span style=\"color: #a709f5;\">\"UniqueCarrier\"<\/span>, <span style=\"color: #a709f5;\">\"mean\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">delayStats = sortrows(delayStats, <span style=\"color: #a709f5;\">\"mean_ArrDelay\"<\/span>)<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsVariableTableElement\" style=\"width: calc(100% - 5px);\" data-testid=\"output_1\">\r\n<div id=\"variableeditor_client_Document_0\" class=\"ClientDocument veSpecifier table constrictHeight\" tabindex=\"0\">\r\n<div class=\"summaryBar\" style=\"font-size: 12px; font-family: Consolas, Inconsolata, Menlo, monospace;\">delayStats = <span style=\"color: #b3b3b3; font-style: normal;\">29\u00d73 table <\/span><\/div>\r\n<div id=\"variableeditor_TableViewModel_0\" class=\"table ClientViewDiv hasSummaryBar\" style=\"width: 100%; overflow: auto;\" data-viewid=\"__1\">\r\n<table style=\"border-spacing: 0px; border-collapse: collapse;\" cellspacing=\"0\">\r\n<thead>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border: 1px solid #bfbfbf; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\"><\/th>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: center; border: 1px solid #bfbfbf; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">UniqueCarrier<\/th>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: center; border: 1px solid #bfbfbf; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">GroupCount<\/th>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: center; border: 1px solid #bfbfbf; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">mean_ArrDelay<\/th>\r\n<\/tr>\r\n<\/thead>\r\n<tbody>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">1<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">HA<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">273<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">-1.5387<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">2<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">ML\u00a0(1)<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">69<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">0.1594<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">3<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">AQ<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">154<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">1.0065<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">4<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">TZ<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">216<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">1.9070<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">5<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">9E<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">521<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">5.3669<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">6<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">PA\u00a0(1)<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">318<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">5.3738<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">7<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">PS<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">83<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">5.3902<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">8<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">NW<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">10349<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">5.4265<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">9<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">WN<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">15931<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">5.4581<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">10<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">OO<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">3090<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">5.8618<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">11<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">US<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">13997<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">6.8027<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">12<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">AA<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">14930<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">6.9598<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">13<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">CO<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">8138<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">7.0480<\/td>\r\n<\/tr>\r\n<tr>\r\n<th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial; background-color: #f5f5f5; color: rgba(0, 0, 0, 0.75); font-weight: bold; box-sizing: border-box;\">14<\/th>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: left; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">TW<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 118px; min-width: 118px; max-width: 118px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">3805<\/td>\r\n<td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 142px; min-width: 142px; max-width: 142px; text-align: right; border-width: 0px 1px 1px; border-style: solid; border-color: #bfbfbf; border-image: initial;\">7.4110<\/td>\r\n<\/tr>\r\n<tr>\r\n<th>\u22ee<\/th>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/div>\r\n<\/div>\r\n<div class=\"outputLayer selectedOutputDecorationLayer doNotExport\"><\/div>\r\n<div class=\"outputLayer activeOutputDecorationLayer doNotExport\"><\/div>\r\n<div class=\"outputLayer scrollableOutputDecorationLayer doNotExport\"><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">We now get the results we want<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">disp(<span style=\"color: #a709f5;\">\"Airline \" <\/span>+ string(delayStats.UniqueCarrier(1)) + <span style=\"color: #a709f5;\">\" had the smallest average delay at \" <\/span>+ <span style=\"color: #0e00ff;\">...<\/span> <\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> delayStats.mean_ArrDelay(1) + <span style=\"color: #a709f5;\">\" minutes.\" <\/span>+ newline + <span style=\"color: #a709f5;\">\"Airline \" <\/span>+ <span style=\"color: #0e00ff;\">...<\/span> <\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> string(delayStats.UniqueCarrier(end)) + <span style=\"color: #a709f5;\">\" had the largest average delay at \" <\/span>+ delayStats.mean_ArrDelay(end) + <span style=\"color: #a709f5;\">\" minutes.\"<\/span>)<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_2\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"31\" data-hashorizontaloverflow=\"false\">Airline HA had the smallest average delay at -1.5387 minutes.\r\nAirline YV had the largest average delay at 12.3761 minutes.<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<h2 id=\"H_599B227A\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Tall Arrays: An easy lazy evaluation framework for handling big data<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">When we only had a small amount of data in the datastore, we used<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-family: monospace;\">data = read(ds);<\/span><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">to acquire the entire data and we processed everything in memory. When our data is too big for memory, we could loop over the blocks and obtain partial results from each block, but that might be rather cumbersome even in relatively simple settings like ours.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/tall-arrays.html\">MATLAB Tall Arrays<\/a> extend the in-memory, often table-based workflow to data that does not fit in memory. Thus, we can develop our analysis code based on an in-memory MATLAB table and use this analysis code with little or no adjustments for the entire dataset that otherwise won't fit in memory.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">To achieve that, tall arrays are created from a datastore and use a \"lazy evaluation\" method for data processing. With lazy evaluation, tall arrays first collect all the analysis operations on the data instead of directly executing them after each call. When requested, MATLAB determines the best way to run those operations, reads in data in blocks from the underlying datastore, applies the operations, and provides the final result to the user.<\/div>\r\n<h3 id=\"H_8BD526BA\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Generating some big data for experimenting<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">For the purpose of this blog post, we will generate a big data set from the small data set by creating multiple copies and adding some random changes to the arrival delays using a function incuded at the end of this script. For the sake of sanity and to spare your hard drive, in this example we'll generate 50 files of around 12 Mb each. The workflow you are about to see would also work just fine if you had one or even fifty 30Gb files. It would just take (much) longer, so we will explore parallel computing options as well.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">generateBigData(50, 50) <span style=\"color: #008013;\">% Uses function at bottom of this script to generate about 600 MB of data<\/span><\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<h3 id=\"H_CEBEB084\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Set up the datastore<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">We explained the concept of datastores with a small sample dataset. Now, instead of the small dataset, we will point the datastore to the complete collection of datafiles using a wildcard (*).<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The only difference between the 'Big data' version and what we've seen until now is the file name.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds = datastore(<span style=\"color: #a709f5;\">\"airlinebig*.csv\"<\/span>, TreatAsMissing=<span style=\"color: #a709f5;\">\"NA\"<\/span>, Delimiter=<span style=\"color: #a709f5;\">\",\"<\/span>); <span style=\"color: #008013;\">% adjusting only the location<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds.SelectedVariableNames = [<span style=\"color: #a709f5;\">\"UniqueCarrier\"<\/span>, <span style=\"color: #a709f5;\">\"ArrDelay\"<\/span>];<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #008013;\">% ds.SelectedFormats{1} = '%C'; % this would lead to an extra pass and thus longer execution time<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #008013;\">% ds.ReadSize = \"file\"; % we do not want to rely on the data of even a single file to fit into memory<\/span><\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<h3 id=\"H_5C11B920\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Setting up parallel resources<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">If Parallel Computing Toolbox is available, multiple cores can be used to speed up the execution. If you do not have access to Parallel Computing Toolbox, comment this section out, and you will still be able to run the example. To learn more about parallel pools and the difference between thread and process based parallel pools, see the <a href=\"https:\/\/www.mathworks.com\/help\/parallel-computing\/run-code-on-parallel-pools.html\">Run Code on Parallel Pools<\/a> and <a href=\"https:\/\/www.mathworks.com\/help\/parallel-computing\/choose-between-thread-based-and-process-based-environments.html\">Choose Between Thread-Based and Process-Based Environments<\/a> pages in the documentation. On top of that, you could <a href=\"https:\/\/www.mathworks.com\/help\/parallel-computing\/scale-up-from-desktop-to-cluster.html\">run computations on a cluster or cloud, including HPC environments<\/a>, instead of on your desktop. This would require <a href=\"https:\/\/www.mathworks.com\/products\/matlab-parallel-server.html\">MATLAB Parallel Server<\/a>.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">if <\/span>isempty(gcp(<span style=\"color: #a709f5;\">\"nocreate\"<\/span>))<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> parpool(<span style=\"color: #a709f5;\">\"Threads\"<\/span>)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">end<\/span><\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_3\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"31\" data-hashorizontaloverflow=\"false\">Starting parallel pool (parpool) using the 'Threads' profile ...\r\nConnected to the parallel pool (number of workers: 4).\r\nans = \r\n ThreadPool with properties:\r\n\r\n     NumWorkers: 4\r\n           Busy: false\r\n<\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<h3 id=\"H_36D4BDF6\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Import the data<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/tall.tall.html\"><span style=\"font-family: monospace;\">tall<\/span><\/a> command constructs a <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/tall-arrays.html\">tall array<\/a> from a datastore. For tall arrays, MATLAB will only start reading the data when requested using the <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/tall.gather.html\"><span style=\"font-family: monospace;\">gather<\/span><\/a> command or other commands, like <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/plot.html\"><span style=\"font-family: monospace;\">plot<\/span><\/a> or <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.graphics.chart.primitive.histogram.html\"><span style=\"font-family: monospace;\">histogram<\/span><\/a>, that trigger read operations of tall variables.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">data = tall(ds) <span style=\"color: #008013;\">% the first genuine change to the code used previously<\/span><\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_5\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"209\" data-hashorizontaloverflow=\"false\">data =\r\nM\u00d72 tall table\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">UniqueCarrier<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">ArrDelay<\/strong>\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">_____________<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">________<\/strong>\r\n{'PS'} 11\r\n{'PS'} 17\r\n{'PS'} 10\r\n{'PS'} 17\r\n{'PS'} 6\r\n{'PS'} 52\r\n{'PS'} 1\r\n{'PS'} 13\r\n: :\r\n: :<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">For the moment, we only know that we will have a tall table with two variables named <span style=\"font-family: monospace;\">UniqueCarrier<\/span> and <span style=\"font-family: monospace;\">ArrDelay<\/span>, but we don't even see how many rows it will have because that would require reading all of the data.<\/div>\r\n<h3 id=\"H_E3F070FE\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Perform the analysis<\/h3>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">delayStats = groupsummary(data, <span style=\"color: #a709f5;\">\"UniqueCarrier\"<\/span>, <span style=\"color: #a709f5;\">\"mean\"<\/span>)<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_6\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"150\" data-hashorizontaloverflow=\"false\">delayStats =\r\nM\u00d73 tall table\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">UniqueCarrier<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">GroupCount<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">mean_ArrDelay<\/strong>\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">_____________<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">__________<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">_____________<\/strong>\r\n? ? ?\r\n? ? ?\r\n? ? ?\r\n: : :\r\n: : :\r\nPreview deferred. Learn more.<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">This time, we only know that we will have a tall table with three variables named <span style=\"font-family: monospace;\">UniqueCarrier<\/span>, <span style=\"font-family: monospace;\">GroupCount<\/span>, and <span style=\"font-family: monospace;\">mean_ArrDelay<\/span>, and we still don't see how many rows it will have because that would require reading all of the data.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">delayStats = sortrows(delayStats, <span style=\"color: #a709f5;\">\"mean_ArrDelay\"<\/span>)<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_7\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"150\" data-hashorizontaloverflow=\"false\">delayStats =\r\nM\u00d73 tall table\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">UniqueCarrier<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">GroupCount<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">mean_ArrDelay<\/strong>\r\n<strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">_____________<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">__________<\/strong> <strong style=\"white-space: pre; font-style: normal; color: #212121; font-size: 12px;\">_____________<\/strong>\r\n? ? ?\r\n? ? ?\r\n? ? ?\r\n: : :\r\n: : :\r\nPreview deferred. Learn more.<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Just like before, the actual analysis is deferred.<\/div>\r\n<h3 id=\"H_73254EA3\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Getting the results<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Let's trigger the actual processing of the data. Since the data is now imported block by block and there could be a significant number of blocks, this may take a while:<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">delayStats = gather(delayStats); <span style=\"color: #008013;\">% the other genuine change to the code used previously<\/span><\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_8\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"61\" data-hashorizontaloverflow=\"false\">Evaluating tall expression using the Parallel Pool:\r\n- Pass 1 of 2: Completed in 9 sec\r\n- Pass 2 of 2: Completed in 13 sec\r\nEvaluation completed in 25 sec<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Reporting the results:<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">disp(<span style=\"color: #a709f5;\">\"Airline \" <\/span>+ string(delayStats.UniqueCarrier(1)) + <span style=\"color: #a709f5;\">\" had the smallest average delay at \" <\/span><span style=\"color: #0e00ff;\">...<\/span> <\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> + delayStats.mean_ArrDelay(1) + <span style=\"color: #a709f5;\">\" minutes.\" <\/span>+ newline + <span style=\"color: #0e00ff;\">...<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> <span style=\"color: #a709f5;\">\"Airline \" <\/span>+ string(delayStats.UniqueCarrier(end)) + <span style=\"color: #a709f5;\">\" had the largest average delay at \" <\/span><span style=\"color: #0e00ff;\">...<\/span> <\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> + delayStats.mean_ArrDelay(end) + <span style=\"color: #a709f5;\">\" minutes.\"<\/span>)<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_9\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"31\" data-hashorizontaloverflow=\"false\">Airline HA had the smallest average delay at -1.417 minutes.\r\nAirline YV had the largest average delay at 12.3736 minutes.<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Since our large data set is copies of the original data set with small variations, our result is comparable to before.<\/div>\r\n<h3 id=\"H_C582BA18\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">A slightly different problem<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">When considering punctuality statistics, people often consider the percentage of flights that are delayed by less than a certain time.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The following variable lets you choose what delay is considered acceptable.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">acceptableDelay = <\/span>5<\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"variableElement\" style=\"font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12px;\">acceptableDelay = 5<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">To do this we need a function to calculate the percentage of flights that meet our delay criteria. We can write this function as a single line and pass it to <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.groupsummary.html\">groupsummary<\/a> as an <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/matlab_prog\/anonymous-functions.html\">anonymous function<\/a>.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; border: 1px solid #bfbfbf;\"><span style=\"white-space: pre;\">fcn = @(x) sum(x &lt;= acceptableDelay)\/numel(x)*100;<\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Other than that, the workflow is almost identical to what we have done before:<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds = tabularTextDatastore(<span style=\"color: #a709f5;\">\"airlinebig*.csv\"<\/span>, TreatAsMissing=<span style=\"color: #a709f5;\">\"NA\"<\/span>, Delimiter=<span style=\"color: #a709f5;\">\",\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds.SelectedVariableNames = [<span style=\"color: #a709f5;\">\"UniqueCarrier\"<\/span>, <span style=\"color: #a709f5;\">\"ArrDelay\"<\/span>];<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">data = tall(ds);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">delayStats = groupsummary(data, <span style=\"color: #a709f5;\">\"UniqueCarrier\"<\/span>, fcn);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">delayStats.Properties.VariableNames{3} = <span style=\"color: #a709f5;\">'Punctuality'<\/span>; <span style=\"color: #008013;\">% renaming the data variable (optional)<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">delayStats = gather(sortrows(delayStats, <span style=\"color: #a709f5;\">\"Punctuality\"<\/span>, <span style=\"color: #a709f5;\">\"descend\"<\/span>));<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_11\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"61\" data-hashorizontaloverflow=\"false\">Evaluating tall expression using the Parallel Pool:\r\n- Pass 1 of 2: Completed in 8.9 sec\r\n- Pass 2 of 2: Completed in 22 sec\r\nEvaluation completed in 33 sec<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Reporting the results:<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">disp(<span style=\"color: #a709f5;\">\"Airline \" <\/span>+ string(delayStats.UniqueCarrier(1)) + <span style=\"color: #a709f5;\">\" had the highest punctuality rate at \" <\/span><span style=\"color: #0e00ff;\">...<\/span> <\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> + delayStats.Punctuality(1) + <span style=\"color: #a709f5;\">\"%.\" <\/span>+ newline + <span style=\"color: #a709f5;\">\"Airline \" <\/span>+ <span style=\"color: #0e00ff;\">...<\/span> <\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper outputs\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> string(delayStats.UniqueCarrier(end)) + <span style=\"color: #a709f5;\">\" had the lowest punctuality rate at \" <\/span>+ delayStats.Punctuality(end) + <span style=\"color: #a709f5;\">\"%.\"<\/span>)<\/span><\/div>\r\n<div style=\"color: #212121; padding: 10px 0px 6px 17px; background: #ffffff none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px;\">\r\n<div class=\"inlineElement eoOutputWrapper embeddedOutputsTextElement\" style=\"width: 1129px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-testid=\"output_12\">\r\n<div class=\"textElement eoOutputContent\" style=\"max-height: 261px; white-space: pre; font-style: normal; color: #212121; font-size: 12px;\" data-width=\"1099\" data-height=\"31\" data-hashorizontaloverflow=\"false\">Airline HA had the highest punctuality rate at 81.3187%.\r\nAirline PI had the lowest punctuality rate at 47.302%.<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<h3 id=\"H_340E2D2B\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Delete test big data (optional)<\/h3>\r\n<div id=\"H_085775BC\" style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Optionally, delete the large files we have created to mimic big data.<\/div>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">deleteTestFiles = <\/span>true<span style=\"white-space: pre;\">;<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">if <\/span>deleteTestFiles<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> delete(<span style=\"color: #a709f5;\">\"airlinebig*.csv\"<\/span>)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">end<\/span><\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<h2 id=\"H_282781F0\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Summary and Resources<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">In this example, we transitioned an application that was working fine on data that fit into memory to an application that works with big data. All we had to do was use <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/tall.tall.html\"><span style=\"font-family: monospace;\">tall<\/span><\/a> instead of <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.io.datastore.readall.html\"><span style=\"font-family: monospace;\">readall<\/span><\/a> and to add a <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/tall.gather.html\"><span style=\"font-family: monospace;\">gather<\/span><\/a> command. For this example, the commands and syntax used have not changed.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Note that not all of the functions shipping with MATLAB and the toolboxes are supported for tall arrays. View a list of all functions that support tall arrays <a href=\"https:\/\/www.mathworks.com\/help\/referencelist.html?type=function&amp;blocktype=&amp;capability=tall\">here<\/a>. In this list, the <img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 21px; height: 20px;\" src=\"http:\/\/blogs.mathworks.com\/matlab\/files\/2022\/12\/bigDataBlog_final_1-4.png\" alt=\"\" width=\"21\" height=\"20\" \/> icon indicates that the behavior on tall arrays differs from the behavior on variables that fit in memory. Click that icon to view the details.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Resources for learning more about tall arrays:<\/div>\r\n<ul style=\"margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif; font-size: 14px;\">\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><a href=\"http:\/\/www.mathworks.com\/learn\/training\/processing-big-data-with-matlab.html\"><span style=\"font-style: italic;\">Processing Big Data with MATLAB<\/span> training<\/a><\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/tall-arrays.html\">Documentation for tall arrays<\/a><\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/select-datastore-for-file-format-or-application.html\">Documentation on available datastores<\/a><\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/develop-custom-tall-array-algorithms.html\">Documentation on developing custom algorithms for tall arrays<\/a><\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><a href=\"https:\/\/www.mathworks.com\/help\/parallel-computing\/scale-up-from-desktop-to-cluster.html\">Documentation on running computations on a cluster or cloud instead of your desktop<\/a><\/li>\r\n<\/ul>\r\n<h2 id=\"H_7AF8FC87\" style=\"margin: 3px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Supporting functions<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-family: monospace;\">generateBigData<\/span> creates a synthetic large data set by creating multiple copies of the <span style=\"font-family: monospace;\">airlinesmall.csv<\/span> file that ships with MATLAB and adding some random changes to the arrival delays. This function is not optimized for performance.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Inputs:<\/div>\r\n<ul style=\"margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif; font-size: 14px;\">\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><span style=\"font-family: monospace;\">numBlocks <\/span>the number of times the original data is replicated to create a single (fairly) big file<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><span style=\"font-family: monospace;\">numFiles <\/span>the number of copies of that (fairly) big file to be created<\/li>\r\n<\/ul>\r\n<div style=\"background-color: #f5f5f5; margin: 10px 0 10px 0;\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 1px solid #bfbfbf; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">function <\/span>generateBigData(numBlocks, numFiles)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">rng(<span style=\"color: #a709f5;\">\"default\"<\/span>)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds = datastore(<span style=\"color: #a709f5;\">\"airlinesmall.csv\"<\/span>, TreatAsMissing=<span style=\"color: #a709f5;\">\"NA\"<\/span>, Delimiter=<span style=\"color: #a709f5;\">\",\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">ds.TextscanFormats([11, 23]) = {<span style=\"color: #a709f5;\">'%s'<\/span>};<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">data = readall(ds);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">newData = data;<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">delete(<span style=\"color: #a709f5;\">\"airlinebig*.csv\"<\/span>)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">h = waitbar(0, <span style=\"color: #a709f5;\">\"0 of \" <\/span>+ numBlocks + <span style=\"color: #a709f5;\">\" blocks written.\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">c = onCleanup(@() close(h));<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">for <\/span>k = 1:numBlocks<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> newData.ArrDelay = data.ArrDelay + round(5*randn(size(data.ArrDelay)));<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> writetable(newData, <span style=\"color: #a709f5;\">\"airlinebig\"<\/span>+k+<span style=\"color: #a709f5;\">\".csv\"<\/span>, <span style=\"color: #a709f5;\">\"WriteMode\"<\/span>,<span style=\"color: #a709f5;\">\"append\"<\/span>)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> waitbar(k\/numFiles, h, k + <span style=\"color: #a709f5;\">\" of \" <\/span>+ numBlocks + <span style=\"color: #a709f5;\">\" blocks written.\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">end<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">h = waitbar(0, <span style=\"color: #a709f5;\">\"0 of \" <\/span>+ numFiles + <span style=\"color: #a709f5;\">\" copies created.\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">c = onCleanup(@() close(h));<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">for <\/span>k = 2:numFiles<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> copyfile(<span style=\"color: #a709f5;\">\"airlinebig1.csv\"<\/span>, <span style=\"color: #a709f5;\">\"airlinebig\"<\/span>+k+<span style=\"color: #a709f5;\">\".csv\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"> waitbar(k\/numFiles, h, k + <span style=\"color: #a709f5;\">\" of \" <\/span>+ numFiles + <span style=\"color: #a709f5;\">\" copies created.\"<\/span>);<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">end<\/span><\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 1px solid #bfbfbf; border-right: 1px solid #bfbfbf; border-top: 0px none #212121; border-bottom: 1px solid #bfbfbf; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\"><span style=\"color: #0e00ff;\">end<\/span><\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<script type=\"text\/javascript\">var css = '\/* Styling that is common to warnings and errors is in diagnosticOutput.css *\/.embeddedOutputsErrorElement {    min-height: 18px;    max-height: 550px;} .embeddedOutputsErrorElement .diagnosticMessage-errorType {    overflow: auto;} .embeddedOutputsErrorElement.inlineElement {} .embeddedOutputsErrorElement.rightPaneElement {} \/* Styling that is common to warnings and errors is in diagnosticOutput.css *\/.embeddedOutputsWarningElement {    min-height: 18px;    max-height: 550px;} .embeddedOutputsWarningElement .diagnosticMessage-warningType {    overflow: auto;} .embeddedOutputsWarningElement.inlineElement {} .embeddedOutputsWarningElement.rightPaneElement {} \/* Copyright 2015-2019 The MathWorks, Inc. *\/\/* In this file, styles are not scoped to rtcContainer since they could be in the Dojo Tooltip *\/.diagnosticMessage-wrapper {    font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;    font-size: 12px;} .diagnosticMessage-wrapper.diagnosticMessage-warningType {    color: rgb(255,100,0);} .diagnosticMessage-wrapper.diagnosticMessage-warningType a {    color: rgb(255,100,0);    text-decoration: underline;} .diagnosticMessage-wrapper.diagnosticMessage-errorType {    color: rgb(230,0,0);} .diagnosticMessage-wrapper.diagnosticMessage-errorType a {    color: rgb(230,0,0);    text-decoration: underline;} .diagnosticMessage-wrapper .diagnosticMessage-messagePart,.diagnosticMessage-wrapper .diagnosticMessage-causePart {    white-space: pre-wrap;} .diagnosticMessage-wrapper .diagnosticMessage-stackPart {    white-space: pre;} .embeddedOutputsTextElement,.embeddedOutputsVariableStringElement {    white-space: pre;    word-wrap:  initial;    min-height: 18px;    max-height: 550px;} .embeddedOutputsTextElement .textElement,.embeddedOutputsVariableStringElement .textElement {    overflow: auto;} .textElement,.rtcDataTipElement .textElement {    padding-top: 2px;} .embeddedOutputsTextElement.inlineElement,.embeddedOutputsVariableStringElement.inlineElement {} .inlineElement .textElement {} .embeddedOutputsTextElement.rightPaneElement,.embeddedOutputsVariableStringElement.rightPaneElement {    min-height: 16px;} .rightPaneElement .textElement {    padding-top: 2px;    padding-left: 9px;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr {  height: 22px;  white-space: nowrap;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr td,.embeddedOutputsVariableTableElement .ClientViewDiv  table tr th {  background-color:white;  text-overflow: ellipsis;  font-family: Arial, sans-serif;  font-size: 12px;  overflow : hidden;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr span {  text-overflow: ellipsis;  padding: 3px;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr th {    color: rgba(0,0,0,0.5);  padding: 3px;  font-size: 9px;}'; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script><a href=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2022\/12\/bigDataBlog_final-4.mlx\"><button class=\"btn btn-sm btn_color_blue pull-right add_margin_10\">Download Live Script<\/button><\/a>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"http:\/\/blogs.mathworks.com\/matlab\/files\/2022\/12\/bigDataBlog_final_1-4.png\" onError=\"this.style.display ='none';\" \/><\/div><p>\r\nToday's guest blogger is Harald Brunnhofer, a Principal Training Engineer at MathWorks. On top of getting thousands of users started with MATLAB or taking their MATLAB skills to the next level, he... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/matlab\/2022\/12\/20\/add-two-lines-to-your-matlab-code-to-make-it-work-with-big-data\/\">read more >><\/a><\/p>","protected":false},"author":176,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[47,42,14,44],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/722"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/users\/176"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/comments?post=722"}],"version-history":[{"count":3,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/722\/revisions"}],"predecessor-version":[{"id":731,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/722\/revisions\/731"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media?parent=722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/categories?post=722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/tags?post=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}